Joydip verfügt über ein Excel-Arbeitsblatt, das ständig und automatisch mit Live-Rohstoffmarktdaten aktualisiert wird. Er möchte ein Meldungsfeld anzeigen, das eine bestimmte Nachricht enthält, wenn sich die Daten in einer bestimmten Zelle / einem bestimmten Bereich ändern, um bestimmte vordefinierte Kriterien zu erfüllen. Die Datenüberprüfung funktioniert nicht, da die Überprüfungsfunktion nicht ausgelöst wird, wenn sich Daten automatisch ändern.

Der beste Weg, um die Daten zu überprüfen und das gewünschte Meldungsfeld anzuzeigen, besteht darin, ein Makro zu verwenden, das vom Ereignis Worksheet_Change ausgelöst wird. Dieses Ereignis wird jedes Mal ausgelöst, wenn der Inhalt einer Zelle geändert wird. Es wird jedoch nicht durch eine Änderung der Anzeige in einer Zelle ausgelöst. Wenn beispielsweise ein neues Stück Warendaten in eine Zelle gestellt wird, wird das Ereignis ausgelöst. Wenn jedoch eine Formel neu berechnet und ein neues Ergebnis dieser Formel angezeigt wird, wird das Ereignis nicht ausgelöst. Warum?

Weil sich die Formel selbst nicht geändert hat; Es wurde nur das Ergebnis der Formel (was angezeigt wird) geändert.

Sobald das Worksheet_Change-Ereignis ausgelöst wird, kann das Makro alles tun, was Sie möchten, einschließlich der Anzeige Ihrer Nachricht. In diesem Beispiel nehmen wir an, dass der zu überprüfende Bereich A1: C5 ist (hier werden die Warendaten eingefügt) und dass das Kriterium, das Sie auslösen möchten, ist, dass der Durchschnitt des Bereichs 5 beträgt. Wenn der Inhalt von Jede Zelle im Bereich wird geändert und der Durchschnitt der Werte im Bereich beträgt 5. Anschließend wird eine Meldung angezeigt.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim rng As Range     Set rng = Range("A1:C5")

If Not Intersect(Target, rng) Is Nothing Then         If Application.WorksheetFunction. _           Average(rng) = 5 Then             MsgBox "The average of " & _               rng.Address & " = 5"

End If     End If     Set rng = Nothing End Sub

Es ist wichtig, dass dieses Makro im Blattobjekt für das Arbeitsblatt platziert wird, das Sie überwachen möchten. Wenn Sie den VBA-Editor anzeigen, klicken Sie mit der rechten Maustaste auf das gewünschte Arbeitsblatt im Bereich Projektexplorer und wählen Sie dann im daraufhin angezeigten Kontextmenü die Option Code anzeigen. In diesem Codefenster platzieren Sie das Makro.

Das Makro wird wiederum immer dann ausgelöst, wenn irgendwo im Arbeitsblatt Änderungen vorgenommen werden. Das Makro verwendet dann die Intersect-Funktion, um zu bestimmen, ob die Änderung innerhalb des gewünschten A1: C5-Bereichs aufgetreten ist. Wenn dies der Fall ist, wird der Durchschnitt des Bereichs überprüft und die Meldung angezeigt, wenn das Ergebnis 5 ist.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2906) gilt für Microsoft Excel 97, 2000, 2002 und 2003.