Makro bei Zelländerung ausführen in Excel
Schritt-für-Schritt-Anleitung
Um ein Excel-Makro auszuführen, wenn sich der Wert einer Zelle ändert, kannst Du den Worksheet_Change
-Ereignis-Handler in VBA verwenden. Hier ist eine einfache Anleitung:
-
Öffne die Excel-Datei und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Wähle das entsprechende Arbeitsblatt im Projekt-Explorer aus.
-
Füge den folgenden Code in das Code-Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A2:A11")) Is Nothing Then
If Range("R19").Value >= 6 Then
Call makro
Else
Exit Sub
End If
End If
End Sub
-
Ändere die Zellbereiche (A2:A11
) entsprechend Deinen Anforderungen.
-
Speichere und schließe den VBA-Editor.
Jetzt wird das Makro bei Änderungen in den definierten Textfeldern ausgeführt, solange der Wert in Zelle R19 6 oder mehr beträgt.
Häufige Fehler und Lösungen
-
Makro wird nicht ausgeführt: Achte darauf, dass die Änderungen in den überwachten Zellen tatsächlich den Wert in R19 beeinflussen. Wenn R19 durch eine Formel berechnet wird, funktioniert Worksheet_Change
nicht. Verwende stattdessen den Worksheet_Calculate
-Ereignis-Handler, um auf Änderungen der Formelergebnisse zu reagieren.
-
Fehlermeldungen: Stelle sicher, dass die Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Einstellungen für Makros
und aktiviere die erforderlichen Optionen.
Alternative Methoden
Eine alternative Methode, um ein VBA-Makro bei Zelländerung auszuführen, ist die Verwendung des Worksheet_Calculate
-Ereignisses. Hier ein Beispiel:
Private Sub Worksheet_Calculate()
If Range("R19").Value >= 6 Then
Call makro
End If
End Sub
Diese Methode überwacht, wenn sich die Berechnungsergebnisse ändern, und führt das Makro entsprechend aus.
Praktische Beispiele
Ein Beispiel für die Verwendung der oben genannten Methoden:
-
Formular mit 10 Textfeldern: Du hast ein Formular, in dem 10 Textfelder mit den Zellen A2 bis A11 verknüpft sind. Jedes Mal, wenn Du ein Textfeld ausfüllst, erhöht sich der Wert in R19. Wenn dieser Wert 6 erreicht, wird das Makro makro
ausgeführt.
-
Benachrichtigung bei Änderungen: Du kannst auch eine Nachricht anzeigen lassen, wenn das Makro ausgeführt wird:
MsgBox "Das Makro wurde aufgrund der Änderung ausgeführt."
Tipps für Profis
-
Verwende Application.EnableEvents = False
: Um zu verhindern, dass das Makro in einer Endlosschleife ausgeführt wird, wenn eine Zelle geändert wird, setze Application.EnableEvents = False
am Anfang des Makros und Application.EnableEvents = True
am Ende.
-
Testen von Makros: Teste Deine Makros gründlich, um sicherzustellen, dass sie in allen möglichen Szenarien funktionieren.
FAQ: Häufige Fragen
1. Wie kann ich das Makro nur für bestimmte Zellen ausführen?
Du kannst die If Not Intersect(Target, Range("A2:A11")) Is Nothing
-Bedingung anpassen, um nur bestimmte Zellen zu überwachen.
2. Was mache ich, wenn das Makro nicht läuft, obwohl es richtig kodiert ist?
Überprüfe, ob die Makros in den Excel-Einstellungen aktiviert sind und ob Du den richtigen Bereich für die Überwachung angegeben hast.