Excel erkennt automatisch, wenn der Anwender eine Zelle verändert. So können alle oder bestimmte Zellen beliebig per VBA überwacht werden.
Das folgende Makro wird beispielsweise ausgeführt, wenn in der Zelle A1 bzw. C1 Änderungen vorgenommen werden. Mit der Abfrage des Target-Befehls können einzelne Zell-Adressen einfach überprüft werden. Sollen hingegen mehrere Zellen oder ganze Zellbereiche überwacht werden, so ist das unten stehende Beispiel (Lösung 2) mit dem Befehl Intersect die bessere Lösung.
Lösung 2: Überwachung von Zellbereichen mit Hilfe des Befehls Intersect:
Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Or Target.Address = "$C$1" Then MsgBox "Sie haben gerade Zelle A1 oder C1 verändert!" End If End Sub
Lösung 2: Überwachung von Zellbereichen mit Hilfe des Befehls Intersect:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1:A3")) Is Nothing Then MsgBox "Im Bereich A1:A3 wurde eine Zelle geändert!" End If End Sub
Mit diesem Makro ist es also möglich, den Bereich auf mehrere Zellen auszuweiten. Im oben stehende Makro wird die Aktion ausgeführt, wenn Änderungen in den Zellen A1, A2 oder A3 vorgenommen werden.
Die beiden Makros müssen in dem betreffenden Tabellenblatt eingefügt werden. Nicht in einem Modul.