ich möchte beim Verlassen einer Zelle (oder beim aktivieren einer Zelle) ein Makro ausführen lassen. Kann mit jemand von Euch mit VBA helfen?
Danke im voraus.
Fritz Olbers :-)
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dein Makro
End Sub
Gruß Boris
Boris seine Aktion wird beim auswählen ausgeführt und
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dein Makro
End Sub
Beim verlassen ´wenn der Zellinhalt geändert wurde
Gruß Hajo
ganz so enfach wie es bisher geschildert wurde ist die Sache nicht. Sas Selction_Change-Ereignis wird ausgelöst, wenn die Zelle ausgewählt, nicht hingegen wenn sie verlassen wird. Daher muß man die Adresse der ausgewählten Zelle in eine Public-Variablen zwischenspeichern.
Klicke mit der rechten Maustaste auf den Reiter der Tabelle, wählen Code anzeigen und gib dann folgenden Code ein (für das Verlassen von Zelle B2):
DeinMakro mußt Du durch den Namen des Makros ersetzen, das ausgeführt werden soll.
Gruß
Martin Beck
Um ein Makro auszuführen, wenn Du eine bestimmte Zelle in Excel verlässt, kannst Du den folgenden VBA-Code verwenden. Dieser wird in das entsprechende Tabellenblatt eingefügt:
Öffne die Excel-Datei.
Rechtsklicke auf den Reiter des Arbeitsblatts, in dem Du das Makro ausführen möchtest.
Wähle „Code anzeigen“.
Füge den folgenden Code ein:
Dim lastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set lastCell = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B2")) Is Nothing Then
' Hier den Namen Deines Makros einfügen
Call DeinMakro
End If
End Sub
Ersetze DeinMakro
durch den Namen des Makros, das Du ausführen möchtest.
Mit diesem Code wird das Makro nur ausgeführt, wenn Du die Zelle „B2“ verlässt.
Intersect
-Befehl und stelle sicher, dass sie korrekt ist.Falls Du eine Alternative zur Verwendung von VBA suchst, kannst Du auch die bedingte Formatierung und Datenüberprüfung nutzen, um Benutzer zu benachrichtigen, anstatt ein Makro auszuführen. Diese Methoden sind jedoch weniger flexibel und bieten nicht die gleiche Automatisierung wie ein Makro.
Makro bei Aktivierung einer anderen Zelle: Um ein Makro auszuführen, wenn Du die Zelle „C2“ aktivierst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.Range("C2")) Is Nothing Then
Call DeinMakro
End If
End Sub
Makro bei Änderung des Zellinhalts: Wenn Du auch möchtest, dass ein Makro ausgeführt wird, wenn der Inhalt von „B2“ geändert wird:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B2")) Is Nothing Then
Call DeinMakro
End If
End Sub
Debug.Print
im Code, um Werte in das Immediate-Fenster auszugeben. Dies hilft beim Troubleshooting.1. Frage
Wie kann ich das Makro für mehrere Zellen gleichzeitig ausführen?
Antwort: Du kannst mehrere Zellen in der Intersect
-Funktion angeben, z.B. Me.Range("B2,C2,D2")
, um das Makro für mehrere Zellen auszuführen.
2. Frage
Funktioniert dieser Code in allen Excel-Versionen?
Antwort: Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange Makros aktiviert sind.
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