Подскажите пожалуйста, как запустить процедуру или макрос, после изменения данных в конкретной ячейке при использовании списка (проверка данных)?
Мне нужно, чтобы пользователь выбрал из выпадающего списка вариант, а после этого выбора запустился макрос на изменение высоты строк на другом листе.
В A1 находится список. После выбора пункта, будет запускаться макрос. Если же вы будете вносить изменения в другие ячейки, то макрос не будет запускаться.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
' Если изменение произошло в нескольких ячейках, то ничего не делаем.
If Target.CountLarge > 1 Then Exit Sub
' Если изменение произошло не в "A1".
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
' Запуск макроса.
макрос
End Sub
Private Sub макрос()
MsgBox "Макрос запущен.", vbInformation
End Sub
[вложение удалено администратором]
Всё получилось. Спасибо большое!
А как сюда же добавить проверку другой ячейки, после изменения которой запускается другой макрос?
В файле сделано, т.к. на словах будет сложно объяснить.
Первый макрос запускается, когда юзер изменяет ячейку A1. Второй запускается, когда юзер изменяет ячейку A2.
[вложение удалено администратором]
Всё по этой теме получилось, спасибо огромное.
А ещё вопрос. Можно ли проверять в ячейке определенное слово? Например макрос запустится, если в ячейке будет слово "да" или фраза из нескольких слов?
Target - это объект "Range". Например, объектом "Range" является "Range", "Cells(1,1)", "ActiveCell". То есть с "Target" можно делать то же, что с перечисленными словами.
Макрос
Private Sub Worksheet_Change(ByVal Target As Range)
' Если изменение произошло в нескольких ячейках, то ничего не делаем.
If Target.CountLarge > 1 Then Exit Sub
' Если изменение произошло не в "A1".
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
' Смотрим, какой текст в ячейке, в которой произошло изменение.
If Target.Value <> "заданная фраза" Then Exit Sub
' Запуск макроса.
макрос
End Sub
Private Sub макрос()
MsgBox "Макрос запущен.", vbInformation
End Sub
Спасибо за помощь!