Excel: Makro automatisch ausführen, wenn eine Zelle geändert wird
Bei der täglichen Arbeit in Excel kann es notwendig sein, auf Änderungen in einer Tabelle oder einem Arbeitsblatt zu reagieren. Das manuelle Verfolgen von Änderungen ist fehleranfällig. Aus diesem Grund ergibt es Sinn, mit einem spezifischen Makro eine automatisierte Lösung zu präferieren. Möchten Sie beispielsweise ein Makro genau in dem Moment ausführen, indem Änderungen in einer Tabelle erfolgen, können Sie dies über ein sogenanntes „Worksheet-Change-Ereignis“ erledigen.
Nutzen Sie die Funktion des Worksheet-Change-Ereignisses, das Sie im VBA-Code-Editor in Microsoft Excel finden, wird die Funktion immer dann ausgelöst, wenn etwas im Arbeitsblatt oder in einer Tabelle geändert wird. Werden zum Beispiel Zellen hinzugefügt oder gelöscht, Werte eingegeben oder Formeln geändert werden Makros automatisch ausgeführt.
Wie kann man ein Worksheet-Change-Ereignis in Excel implementieren?
Die Verwendung des Worksheet-Change-Ereignisses (deutsch: Arbeitsblattänderungsereignisses) ist simpel. Öffnen Sie die Arbeitsmappe, die automatisiert werden soll und navigieren Sie mit der rechten Maustaste auf die Registerkarte des Blattes. Wählen Sie im Kontextmenü "Code anzeigen". Dadurch wird der Code-Editor geöffnet, sodass ein Worksheet-Change-Ereignis für dieses Blatt erstellt werden kann. Wie einfach die Funktion genutzt werden kann, sehen Sie im folgenden Beispiel.
Wie kann man einen Programmcode an ein Tabellenblatt anbinden?
In den Worksheet-Change-Ereignishandler können Sie Code schreiben, um auf Änderungen im Arbeitsblatt zu reagieren. Um den Programmcode an ein Tabellenblatt anzubinden, gehen Sie folgendermaßen vor:
1. Öffnen Sie die Arbeitsmappe.
2. Klicken Sie das gewünschte Tabellenblatt unten im Blattregister mit der rechten Maustaste an und wählen Sie aus dem Kontextmenü den Eintrag CODE ANZEIGEN.
Excel öffnet in der Folge den VBA-Editor. Aktivieren Sie nun aus der ersten Auswahlliste (ALLGEMEIN) den Eintrag WORKSHEET, wie die folgende Abbildung zeigt:
Excel bindet nun automatisch ein Unterprogramm in Ihre Arbeitsmappe ein. Alle Anweisungen, die Sie in diesem Unterprogramm platzieren, werden ausgeführt, sobald eine Änderung in dem entsprechenden Tabellenblatt stattfindet.
Mit dem Parameter Target übergibt das Programm die Adresse der Zelle, in der etwas verändert wurde. Tragen Sie den folgenden Befehl in das Unterprogramm (zwischen die Zeilen, die mit Sub und End beginnen) ein, um diese Funktion zu testen:
MsgBox("Sie haben " & Target.Address & " verändert.")
Sobald Sie eine Zelle in dem Tabellenblatt verändern, zeigt Ihnen Excel ab sofort das folgende Mitteilungsfenster an:
Tipp: Möchten Sie, dass das Makro so aufgebaut ist, dass es ausschließlich auf Änderungen in bestimmten Zellen reagiert? Dann verknüpfen Sie den Parameter Target mit einer Abfrage, bei der Sie die Zellen benennen, bei denen das Makro aktiv werden soll. |
Zusammenfassend ist es in wenigen Schritten möglich, ein Worksheet-Change-Ereignis in Microsoft Excel zu implementieren. Dieses einfache Makro sorgt in der Folge dafür, dass Sie einen Hinweis erhalten, sobald alle oder definierte Zellen in der Tabelle verändert werden. Auf diese Weise bewahren Sie die Übersicht und werden vor allem bei umfangreichen Tabellenkalkulationen über alle relevanten Änderungen informiert.