Страницы: 1
RSS
Вызвать макрос при изменении ячеек
 
Здравствуйте, помогите с кодом. Нужно чтобы при изменении значения в определённой ячейки в диапазоне срабатывал определённый макрос, и так же чтобы макрос срабатывал когда значение в ячейке удаляется delete-ом.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Union(Cells(2, 37), Range(Cells(4, 38), Cells(16, 38)))) Is Nothing Then
    Select Case Range
        Case Cells(2, 37)
            Call Макрос1
        Case Cells(4, 38)
            Call Макрос2           
        Case Cells(5, 38)
            Call Макрос3
        Case Cells(6, 38)
            Call Макрос4
    End Select
End If
End Sub
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B2,C3,D5")) Is Nothing Then
     Select Case Target.Address
        Case [B2].Address
            MsgBox "Ку"
            'Call Макрос1
        Case [C3].Address
            MsgBox "КуКу"
            'Call Макрос2
        Case [D5].Address
            MsgBox "КуКуКу"
   End Select
End If
End Sub
 
skais675, спасибо, а как сделать чтобы макрос сработал при удалении значения? может как то можно условие добавить?
 
Так ведь работает на удаление. Но по одной!
Изменено: Hugo - 17.04.2020 20:20:51
 
OSA913, приложите пример и объясните при каких действия не работает.
 
Не понятно по какой причине в примере работает на удаление значения, а в рабочем файле нет.
 
из-за того что ячейки объединены
 
Еслт в рабочем файле не работает на удаление, то и на изменение не будет.  
 
Цитата
Hugo написал:
по одной!
По одной ячейке.
 
Чтобы в объединённых работало удаление можно что нибудь придумать?
 
Не создавать себе трудности, чтобы потом их героически преодолевать ))
1. Отказаться от использования объединённых ячеек в области данных и использовать объединение только в заголовках столбцов.
2. Визуально обмануть: в формате ячеек использовать выравнивание по центру выделения. Тогда по факту будет одна ячейка, а выглядеть будет, как  объединённые две.
 
3. Убрать в макросе условие на Target.Cells.Count (см. #4)
Изменено: sokol92 - 17.04.2020 21:09:22
Владимир
 
все можно придумать, если понимать при каких условиях макрос должен сработать
если так и не удалось запустить все так, как хотелось
опишите как должно работать простыми словами, тут есть люди, которые умеею задачу описанную простыми словами оформить в виде макроса
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Придумал. Всех благодарю за помощь!
Страницы: 1
Наверх