Live-Forum - Die aktuellen Beiträge
Datum
Titel
25.10.2025 08:21:40
24.10.2025 18:10:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA automatisch nach Eingabe starten

Forumthread: VBA automatisch nach Eingabe starten

VBA automatisch nach Eingabe starten
25.01.2021 12:32:12
Marko
Hallo,
ich komme mit dieser Aufgabe nicht weiter. Nachdem ich in Sheets("Eingabe") Zelle C12 einen Werte eingetragen habe, soll das Makro automatisch starten. Leider funktioniert es nicht. Wenn ich das Makro aus Modul1 manuell starte, funktioniert es. Was mache ich falsch?
Vielen Dank für Eure Hilfe,
Gruß, Marko
Dieses Makro befindet sich im Modul1:
Sub VersandkostenAutomatisierung()
If Sheets("Eingabe").Range("C12").Value Sheets("Eingabe").ToggleButton2.Value = False
Sheets("Eingabe").Range("C28").Value = Sheets("Berechnung").Range("G71").Value
Else
Sheets("Eingabe").Range("C28").Value = " "
End If
End Sub
Dieses Makro befindet sich in dem Sheet ("Eingabe"):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$12" Then
VersandkostenAutomatisierung
End If
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA automatisch nach Eingabe starten
25.01.2021 12:58:43
Klaus
Hmmm ... der Code müsste eigentlich gehen, vielleicht hilft ein "Call"?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$12" Then
Call VersandkostenAutomatisierung()
End If
End Sub

Anzeige
VBA automatisch nach Eingabe starten
25.01.2021 14:57:31
Marko
Hallo Klaus,
vielen Dank für den Vorschlag.
Leider ohne Erfolg.
Gruß, Marko
AW: VBA automatisch nach Eingabe starten
27.01.2021 18:33:16
Klaus
Marko,
das muss klappen. Geh mal ins Direktfenster und gib ein:
application.enableevents = true
und versuche es dann nochmal.
LG,
Klaus
VBA automatisch nach Eingabe starten
25.01.2021 14:58:54
Marko
Hallo Andreas,
vielen Dank für den Hinweis. Genau an diesem Betrag habe ich mich orientiert.
Leider ohne Erfolg.
Gruß, Marko
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA automatisch nach Eingabe starten in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro automatisch auszuführen, sobald Du in eine bestimmte Zelle eingibst, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Finde das richtige Arbeitsblatt:

    • Suche im Projekt-Explorer das Arbeitsblatt "Eingabe" und doppelklicke darauf.
  3. Füge den Worksheet_Change-Ereigniscode hinzu:

    • Kopiere den folgenden Code in das Codefenster:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$C$12" Then
           Call VersandkostenAutomatisierung
       End If
    End Sub
  4. Füge das Hauptmakro hinzu:

    • Stelle sicher, dass das folgende Makro im Modul1 vorhanden ist:
    Sub VersandkostenAutomatisierung()
       If Sheets("Eingabe").Range("C12").Value <> "" Then
           Sheets("Eingabe").ToggleButton2.Value = False
           Sheets("Eingabe").Range("C28").Value = Sheets("Berechnung").Range("G71").Value
       Else
           Sheets("Eingabe").Range("C28").Value = " "
       End If
    End Sub
  5. Teste den Code:

    • Gebe in Zelle C12 einen Wert ein und überprüfe, ob das Makro automatisch ausgeführt wird.

Häufige Fehler und Lösungen

  • Ereignisse sind deaktiviert: Wenn das Makro nicht ausgeführt wird, könnte es daran liegen, dass die Ereignisse deaktiviert sind. Öffne das Direktfenster und gib Application.EnableEvents = True ein.

  • Falsche Adresse: Stelle sicher, dass du die korrekte Zelladresse in der Bedingung verwendest ("$C$12").

  • Falsches Modul: Das Makro muss sich im richtigen Modul befinden. Überprüfe, ob es in Modul1 gespeichert ist.


Alternative Methoden

Falls Du eine andere Methode bevorzugst, kannst Du auch eine Eingabeaufforderung verwenden:

  1. Erstelle in der Worksheet_Change-Prozedur eine Eingabeaufforderung, die den Benutzer zur Eingabe auffordert.
  2. Verwende InputBox, um Werte zu erfassen und die Verarbeitung zu starten.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$12" Then
        Dim userValue As String
        userValue = InputBox("Bitte geben Sie einen Wert ein:")
        If userValue <> "" Then
            Call VersandkostenAutomatisierung
        End If
    End If
End Sub

Praktische Beispiele

Hier ist ein Beispiel zur Veranschaulichung:

Angenommen, Du möchtest die Versandkosten automatisch berechnen, sobald der Benutzer die Menge in Zelle C12 eingibt. Das Makro prüft, ob die Zelle nicht leer ist und aktualisiert die Versandkosten in C28 basierend auf den Berechnungen in einem anderen Blatt.


Tipps für Profis

  • Debugging: Nutze das Debugging-Tool im VBA-Editor, um Probleme zu identifizieren.

  • Fehlerbehandlung: Füge eine einfache Fehlerbehandlung hinzu, um unerwartete Fehler abzufangen:

    On Error Resume Next
  • Kommentare: Kommentiere Deinen Code, um die Lesbarkeit zu verbessern und anderen zu helfen, Deinen Ansatz zu verstehen.


FAQ: Häufige Fragen

1. Frage
Warum wird mein Makro nicht automatisch ausgeführt?
Antwort: Möglicherweise sind die Ereignisse in Excel deaktiviert. Stelle sicher, dass Du Application.EnableEvents = True im Direktfenster eingegeben hast.

2. Frage
Kann ich mehrere Zellen überwachen?
Antwort: Ja, Du kannst die Adresse in der Bedingung anpassen. Verwende If Not Intersect(Target, Range("C12,C13")) Is Nothing Then, um mehrere Zellen zu überwachen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige