Ich muß mittels vba überprüfen ob sich eine bestimmte Zelle geändert hat.
Ich muß mittels vba überprüfen ob sich eine bestimmte Zelle geändert hat.
aus der xlfaq.
http://xlfaq.herber.de/texte/125800h.htm
gruss thomas
gib das folgende Makro in das Klassenmodul des betreffenden Tabellenblattes ein (im VBA-Editor auf den Tabellenblattnamen doppelklicken). In diesem Beispiel kommt ein Signalton, wenn sich in Zelle A1 was ändert.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zeile%, Spalte%
Zeile = Target.Row: Spalte = Target.Column
If Zeile = 1 And Spalte = 1 Then Beep
End Sub
Um in Excel zu überprüfen, ob sich eine bestimmte Zelle geändert hat, kannst du ein VBA-Makro verwenden. Hier sind die Schritte:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Doppelklicke im Projektfenster auf das Tabellenblatt, in dem du die Überprüfung durchführen möchtest.
Füge den folgenden Code in das Klassenmodul ein:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zeile As Long, Spalte As Long
Zeile = Target.Row
Spalte = Target.Column
If Zeile = 1 And Spalte = 1 Then Beep
End Sub
Schließe den VBA-Editor und speichere deine Datei als Excel-Arbeitsmappe mit Makros
(*.xlsm).
Teste die Funktion, indem du den Inhalt von Zelle A1 änderst. Du solltest einen Signalton hören, wenn sich die Zelle ändert.
Fehler: Das Makro funktioniert nicht.
Fehler: Kein Signalton hörbar.
Beep
-Befehl durch eine andere Aktion ersetzen, wie das Anzeigen einer Nachricht mit MsgBox "Änderung erkannt!"
.Wenn du kein VBA verwenden möchtest, kannst du auch die Änderungsverfolgung
in Excel aktivieren. Gehe dazu auf Überprüfen
> Änderungen verfolgen
. Beachte jedoch, dass dies nicht so flexibel ist wie ein VBA-Makro.
Ein praktisches Beispiel für die Verwendung des oben genannten VBA-Codes könnte sein, dass du die Änderungen in verschiedenen Zellen überwachen möchtest. Du kannst den Code leicht anpassen, um mehrere Zellen zu überwachen. Hier ist ein Beispiel:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Me.Range("A1:B10")) Is Nothing Then
Beep
MsgBox "Änderung in Zelle " & Target.Address & " erkannt!"
End If
End Sub
In diesem Beispiel wird ein Signalton und eine Nachricht angezeigt, wenn sich eine Zelle im Bereich A1:B10 ändert.
Nutze Application.EnableEvents = False
, um die Ausführung von Ereignissen während der Ausführung deines Makros zu deaktivieren. Dadurch werden ungewollte Schleifen und Fehlermeldungen vermieden.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.EnableEvents = False
' Dein Code hier
Application.EnableEvents = True
End Sub
Experimentiere mit verschiedenen Aktionen, die du bei einer Zelländerung ausführen kannst, z.B. das Protokollieren von Änderungen in einer anderen Tabelle.
1. Frage
Kann ich das Makro auch für mehrere Tabellenblätter verwenden?
Ja, du musst den Code in das Modul jedes Tabellenblattes einfügen, das du überwachen möchtest.
2. Frage
Was passiert, wenn ich Excel schließe?
Die Änderungen sind nicht permanent gespeichert, wenn du die Datei nicht als Makro-fähige Arbeitsmappe speicherst. Stelle sicher, dass du deine Arbeit regelmäßig speicherst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen