VBA макрос в ексель который срабатывает на изменение значения в ячейке

Сделал парсер в ексель который обновляется каждую минуту и хотелось бы что б макрос издавал звук при изменении данных в второй строке. Я далеко не програмист (не бейте палками).

Private Sub Worksheet_Calculate()
 If (старое значение ячейки <> новое значение той же ячейки) Then
 ExecuteExcel4Macro "sound.play(,""C:\Windows\Media\Windows NotifyEmail.wav"")"
End If
End Sub

Ответы (1 шт):

Автор решения: vikttur

Вернемся на шаг назад (Undo), запишем в переменную предыдущее значение ячейки, вернемся обратно, сравним предыдущее и текущее значения:

   Private Sub Worksheet_Change(ByVal Target As Range)
        Dim testvalue As Long
        
        If Not Application.Intersect(Range("A2"), Target) Is Nothing Then
            If Target.Cells.Count > 1 Then Exit Sub
            With Application: .ScreenUpdating = False: .EnableEvents = False: End With
    
            Application.Undo
            testvalue = Target.Value
            Application.Undo
            If testvalue <> Target.Value Then Beep
            
            With Application: .ScreenUpdating = True: .EnableEvents = True: End With
        End If
    End Sub
→ Ссылка