Страницы: 1
RSS
Worksheet_SelectionChange с условием MsgBox
 
Привет мастерам.
Не могу понять в чем проблема при работе Worksheet_SelectionChange. Внутри построено условие со всплывающим сообщением (подтверждения выполнения), при нажатии "Да" все корректно работает, но при нажатии "Нет", то все просто перестает работает. Макрос "Worksheet_SelectionChange" больше не реагирует, пока не перезапустишь EXCEL
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    DateNameEvent Target, Range(Cells(3, 7), Cells(20, 7))
End Sub

Sub DateNameEvent(Target As Range, KeyCells As Range)
Application.EnableEvents = False
If Not Application.Intersect(KeyCells, Target) Is Nothing Then
    If Cells(Target.Row, 7) <> "Выполнено" Then
        If MsgBox(Подтвердить выполнение " & "(" & Cells(ActiveCell.Row, ActiveCell.Column - 3).Value & ")" & "?" & Chr(13) & _
        "Исполнитель:" & Cells(ActiveCell.Row, ActiveCell.Column - 4).Value & ".", vbExclamation + vbYesNo, "Выполнение задания") = vbYes Then
            ActiveCell.Value = "Выполнено"
            ActiveCell.Interior.Color = 52224
            Cells(Target.Row, 6).Interior.Color = RGB(255, 255, 255)
            Cells(Target.Row, 24).Value = Application.UserName
            Cells(Target.Row, 25).Value = Date
            Cells(Target.Row, 26).Value = Time
        Else
            Exit Sub
        End If
        Else
        If MsgBox("Задание " & "(" & Cells(ActiveCell.Row, ActiveCell.Column - 3).Value & ") уже выполнено, убрать отметку" & "?" & Chr(13) & _
        "Исполнитель:" & Cells(ActiveCell.Row, ActiveCell.Column - 4).Value & ".", vbInformation + vbYesNo, "Выполнение задания") = vbYes Then
            ActiveCell.Value = "Подтвердить выполнение"
            ActiveCell.Interior.Color = 13497086
            Cells(Target.Row, 27).Value = Application.UserName
            Cells(Target.Row, 28).Value = Date
            Cells(Target.Row, 29).Value = Time
                If Cells(ActiveCell.Row, ActiveCell.Column - 1) < Date Then
                    Cells(Target.Row, 6).Interior.Color = 255
                End If
        Else
            Exit Sub
        End If
    End If
End If
Application.EnableEvents = True
End Sub
Изменено: slesarok - 18.11.2023 18:48:57 (Приложить файл)
 
Почему вас это удивляет?
Application.EnableEvents = False в начале  и
Application.EnableEvents = True
в конце, до него  не доходит        
Else
           Exit Sub
End If
По вопросам из тем форума, личку не читаю.
 
Как все просто!
Спасибо огромное!
 
конечно просто, главное что это
      Else
           Exit Sub
не нужно как класс.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх