Ausführen eines Makros bei Änderung bestimmter Zellen in Excel
Zusammenfassung
Sie können in Microsoft Excel ein Makro erstellen, das nur ausgeführt wird, wenn ein Wert in eine Zelle eines bestimmten Tabellenblatts oder eines beliebigen geöffneten Tabellenblatts eingegeben wird.
Beachten Sie dabei jedoch, dass Sie nicht unnötigerweise Makros ausführen sollten, da dadurch die Leistung von Excel herabgesetzt wird.
Weitere Informationen
Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionsfähigkeit sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind. In vielen Fällen sollen Makros nur dann ausgeführt werden, wenn bestimmte Zellen mit Werten befüllt werden (in diesem Artikel als „Schlüsselzellen“ bezeichnet). Damit ein großes Makro nicht bei jeder Eingabe eines Werts in eine Zelle eines Tabellenblatts ausgeführt wird, müssen Sie prüfen, ob die ActiveCell eine der Schlüsselzellen ist. Wenden Sie dazu die Intersect-Methode auf die ActiveCell und den Bereich an, der die Schlüsselzellen enthält, um zu überprüfen, ob die ActiveCell eine der Schlüsselzellen ist. Wenn sich die ActiveCell in dem Bereich befindet, der die Schlüsselzellen enthält, können Sie das Makro aufrufen.
So erstellen Sie das Visual Basic-Makro:
Klicken Sie mit der rechten Maustaste auf die Registerkarte „Tabelle1“, und klicken Sie dann auf „Code anzeigen“.
Das Modulblatt hinter „Tabelle1“ wird geöffnet.
Geben Sie den folgenden Code in das Modulblatt ein:
Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable KeyCells contains the cells that will ' cause an alert when they are changed. Set KeyCells = Range("A1:C10") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then ' Display a message when one of the designated cells has been ' changed. ' Place your code here. MsgBox "Cell " & Target.Address & " has changed." End If End Sub
Klicken Sie im Menü „Datei“ auf Schließen und zurück zu Microsoft Excel.
Bei einer Eingabe in den Zellen A1:C10 in „Tabelle1“ wird nun ein Meldungsfeld angezeigt.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für