Nach einer Eingabge in einer bestimmten Zelle, z.B. B13, soll ein Makro ausgeführt werden. Ist das möglich?
Vielen Dank für eure Hilfe
corinne
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$13" Then
MsgBox "B13 geändert"
End If
End Sub
Gruß
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
If Target.Address = "$B$13" Then
MsgBox "Der Wert in Zelle B13 wurde geändert."
End If
Um ein Excel VBA Makro automatisch auszuführen, wenn Du einen Wert in eine bestimmte Zelle eingibst, folge diesen Schritten:
Öffne den VBA-Editor: Drücke Alt + F11.
Wähle das richtige Arbeitsblatt aus: Doppelklicke im Projekt-Explorer auf das Tab-Blatt, für das Du das Makro gelten lassen möchtest.
Wähle das Ereignis aus: Setze im Kombifeld oben rechts auf „Worksheet“ und wähle dann „Change“ aus.
Füge den Code ein: Der Textcursor sollte nun zwischen den Zeilen Private Sub Worksheet_Change(ByVal Target As Range) und End Sub blinken. Füge hier den folgenden Code ein:
If Target.Address = "$B$13" Then
MsgBox "Der Wert in Zelle B13 wurde geändert."
End If
Speichere Deine Änderungen: Schließe den VBA-Editor und teste die Eingabe in Zelle B13.
Jetzt wird das Makro ausgeführt, wenn Du einen Wert in die Zelle B13 eingibst.
Fehler: Das Makro wird nicht ausgeführt.
Fehler: Die Meldung erscheint nicht.
Falls Du ein Excel Makro in einer Zelle ausführen möchtest, kannst Du auch andere Ereignisse nutzen, wie z.B. Worksheet_SelectionChange. Hier ein Beispiel für diese Methode:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$13" Then
MsgBox "Du hast die Zelle B13 ausgewählt."
End If
End Sub
Diese Methode reagiert, wenn Du die Zelle auswählst, anstatt einen Wert einzugeben.
Datenvalidierung: Du kannst ein Makro ausführen, wenn ein bestimmter Wert eingegeben wird. Zum Beispiel:
If Target.Address = "$B$13" And Target.Value = "Aktiv" Then
MsgBox "Status auf Aktiv gesetzt."
End If
Kopieren von Werten: Wenn Du einen Wert in B13 eingibst, kannst Du automatisch einen Wert in einer anderen Zelle setzen:
If Target.Address = "$B$13" Then
Range("C13").Value = "Wert gesetzt"
End If
Verwende Application.EnableEvents = False: Wenn Du mehrere Makros hintereinander ausführen möchtest, kann es hilfreich sein, die Ereignisse vorübergehend zu deaktivieren, um unerwünschte Schleifen zu vermeiden.
Application.EnableEvents = False
' Dein Code hier
Application.EnableEvents = True
Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass Dein Makro nicht unerwartet stoppt:
On Error Resume Next
' Dein Code hier
On Error GoTo 0
1. Wie kann ich ein Excel VBA Makro automatisch ausführen bei Eingabe in mehreren Zellen?
Du kannst die If-Bedingung erweitern, um mehrere Zellen zu überprüfen. Zum Beispiel:
If Target.Address = "$B$13" Or Target.Address = "$C$13" Then
MsgBox "Eine der Zellen wurde geändert."
End If
2. Was kann ich tun, wenn ich ein Makro immer wieder ausführen möchte?
Du kannst ein globales Ereignis in der „ThisWorkbook“-Klasse erstellen, um das Makro in mehreren Blättern oder für verschiedene Zellen zu verwenden.
3. Kann ich das Makro auch als Schaltfläche ausführen?
Ja, Du kannst eine Schaltfläche in Excel einfügen und diese dann mit Deinem Makro verknüpfen, um es manuell auszuführen.
Mit diesen Informationen bist Du gut ausgestattet, um ein Excel Makro automatisch auszuführen, wenn Du einen Wert in eine Zelle eingibst.
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