Kuzmich, хорошее решение, спасибо! А если отталкиваться от того, что в таблицах не будут совпадать названия столбцов, можно ли что-то придумать в таком случае?
Добрый вечер. Подскажите, пожалуйста, как можно оптимизировать код макроса, который вставляет определённые столбцы с данными с Листа1 на Лист2. Файл примера во вложении.
Добрый вечер. Имеется таблица с объединёнными ячейками в строках. Проблема в том, что Excel не хочет регулировать высоту строк автоматически из-за объединённых ячеек. Проблема по сути была решена с помощью макроса в примере, добавленного в исходный код страницы с таблицами. Но решение вышло довольно-таки неэффективное, т. к. в реальном примере таких таблиц порядка 2-х десятков с разным количеством столбцов разных размеров по ширине и количеством строк в этих таблицах от 5 до 10. Вопрос в том, можно ли как-то оптимизировать сам макрос, чтобы он не был настолько громоздким, но, при этом, не потерял в своей функциональности. Файл с примером во вложении.
Дмитрий(The_Prist) Щербаков, а я почему-то не подумал, что изменение настроек можно записать с помощью макроса. Да и по сути мне не подходит этот вариант, т. к. в реальном примере объёмные таблицы с данными, куча формул там же. Непонятно, как это всё себя поведёт с включенными итеративными вычислениями.
restation, хороший вариант решения проблемы, но разве эта настройка не локальная, т. е. если открыть мой файл на др. компьютере, то будет ли там стоять галочка в этом пункте в параметрах?
Добрый день. Подскажите, пожалуйста, можно ли подавить с помощью макроса сообщение об ошибке (предупреждение о циклических ссылках), появляющееся при открытии данного примера.
Юрий М, нет, у меня изначально в ячейке G2 была и есть формула, которая проверяла выполнение этих 2-х условий. К тому же сейчас я немного усовершенствовал код к такому виду
Товарищи, ещё вопрос по данному примеру. В примере после того, как я выбираю "да" в ячейке С2, отображается строка 4. Но отображается она не сразу, а только после того, как я стану курсором в любую другую ячейку. Вопрос в том, можно ли как-то избавиться от этой задержки и сделать так, чтобы строка появлялась сразу после того, как я выберу "да" в С2?
Добрый день. Имеется макрос, который заменяет значения на листе при смене состояния переключателя. Проблема в том, что значения меняются не сразу после клика по переключателю, а только после того, как встать курсором в произвольную ячейку. Можно ли как-то сделать, чтобы замена происходила автоматически вместе с изменением значения в ячейке А1?
Юрий М, ну да, тут всё просто. Но у меня всё-таки немного другая задача: я хочу, чтобы при смене состояния переключателя происходила замена текста на листе (в рассматриваемом примере это 'Лист2' на 'Лист3'). Причём замена должна работать в обе стороны. Как-то вот так.
Юрий М, да, логичнее и проще всего. В реальном примере, на главном листе есть пользовательские функции, в которых есть ссылки на определённые ячейки на техническом листе. И мне сейчас нужно добавить 2 тех. лист и, следовательно, надо чтобы при смене состояния переключателей менялись и названия листов. А проблема в том, что пользовательские функции почему-то не хотят правильно работать с формулами типа ЕСЛИ(А=1;Лист2!А1;Лист3!А1). Ну и как вариант я вижу динамическую замену с помощью макроса этих самых Лист2 на Лист3 и обратно при смене состояния переключателя.
Доброго времени суток. Можно ли с помощью макроса в коде листа сделать так, чтобы при смене состояния переключателя происходила замена текста на листе (например, в примере в ячейках F7:F8 при смене состояния переключателя из 1 в 2 формулы должны ссылаться на Лист3, при смене из 2 в 1 - на Лист2).
Добрый день. Имеется файл с множеством таблиц для заполнения. Изначально все они скрыты и заполняются только при выполнении определенного условия. Эту задачу удалось решить с помощью довольно-таки простого макроса, добавленного в исходный код страницы с таблицами. Но, как по мне, решение вышло довольно-таки неэффективное, т. к. в реальном примере таких таблиц в одном файле порядка 2-х десятков с количеством строк в каждой от 5 до 10. Вопрос в том, можно ли как-то оптимизировать сам макрос, чтобы он не был настолько громоздким, но, при этом, не потерял в своей функциональности. Файл с примером во вложении.
vikttur, в моём коде возникает ошибка когда удаляешь введённое в строку значение. В вашем решении 1 возникает точно такая же ошибка как и у меня, во 2 также возникает ошибка, но уже отличная от ошибки в 1 решении.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Cells(4, 2), Cells(6, 2), Cells(8, 2))) Is Nothing Then
Select Case Len(Target.Value)
Case Is < 36
rHeight = 15
Case 36 To 70
rHeight = 30
Case 71 To 100
rHeight = 45
Case Is > 100
rHeight = 60
End Select
Rows(Target.Row).RowHeight = rHeight
End If
If Not Intersect(Target, Union(Cells(13, 2), Cells(15, 2), Cells(17, 2))) Is Nothing Then
Select Case Len(Target.Value)
Case Is < 20
rHeight = 15
Case 20 To 40
rHeight = 30
Case 41 To 60
rHeight = 45
Case Is > 60
rHeight = 60
End Select
Rows(Target.Row).RowHeight = rHeight
End If
End Sub
Товарищи, подскажите пожалуйста, можно ли как-то уйти от возникающей ошибки в данном примере?