Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Exit sub

Exit sub
21.08.2002 11:03:14
Didier
Hallo Exelfreunde!
Grosses Kompliment an dieses Forum!
Habe eine Frage an euch:
wie kann man ein Makro stoppen? Habe eine Bedingung im Code mit if.......und sobald ich ans end if.... komme, möchte ich direkt aussteigen, ohne weiteren Code laufen zu lassen.
Danke!
Gruss
Didier
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Exit sub
21.08.2002 11:05:38
Charlie
Hallo, Didier!

Die Antwort hast Du Dir doch im Betreff schon selbst gegeben:
Schreib einfach dort, wo Schluss sein soll Exit Sub in die Prozedur.

Gruß,
Charlie

Re: Exit sub
21.08.2002 11:07:33
Andreas S
Hallo,

Du hast es ja selber schon geschrieben:

If ... then Exit Sub

Gruss

Andreas

Re: Exit sub
21.08.2002 11:08:59
Regina
Hallo Didier,

du kannst mit elseif

also wenn if nicht zutrifft

sagen EXIT SUB

also

elseif
exit sub

probiers mal

Gruß #Regina

Anzeige
klappt leider nicht.....der Code läuft weiter
21.08.2002 11:09:31
Didier
Gibt es keine andere Möglichkeit?
Re: Exit sub
21.08.2002 11:12:01
Andreas
Probier es mit End anstatt Exit Sub

Re: klappt leider nicht.....der Code läuft weiter
21.08.2002 11:15:13
Charlie
Hallo, Didier!

Bist Du sicher, dass das Exit Sub an der richtigen Stelle steht. Wenn der Code weiterläuft, dann sicher nur deshalb, weil der Code davor (im If..) das Makro am Exit Sub vorbeischleust.

Poste doch einmal, was Du Dir bisher überlegt hast mit einer kurzen Erklärung, was passieren soll, damit es zum Exodus kommt.

Gruß,
Charlie

Anzeige
Re: klappt leider nicht.....der Code läuft weiter
21.08.2002 11:26:28
Didier
on error goto gestionerreur
gestionerreur:
if Err.Number = 1004 then
msgbox "bla bla bla"
'hier möchte ich aussteigen (exit sub)
else
Sheets ("data").activate......'und dann passieren die Einträge. Aber wenn es den Error 1004 gibt, möchte ich ja direkt aussteigen, ohne dass die Einträge passieren, doch trotzdem läuft der Code weiter!
Anzeige
Re: klappt leider nicht.....der Code läuft weiter
21.08.2002 11:30:02
Charlie
Hallo Didier,

dann kann es nur daran liegen, dass ein anderer Fehler als 1004 den Sprung zur Fehlerbehandlungsroutine auslöst. Das musst Du abklären, denn jeder andere Fehler lässt selbstverständlich das Makro weiterlaufen.

Gruß,
Charlie

Re: klappt leider nicht.....der Code läuft weiter
21.08.2002 11:54:41
Didier
nein, es ist dieser Fehler 1004.
Der Name der Textbox erstellt eine neue Tabelle. Falls dieser Name schon mal vorkommt, soll ja nicht eine neue Tabelle erstellt werden, also mit exit sub aussteigen. Die Fehlermeldung klappt so weit so gut, aber die Tabelle wird trotzdem erstellt.
Verstehe ich nicht!
Anzeige
Re: klappt leider nicht.....der Code läuft weiter
21.08.2002 14:00:08
Charlie
Hallo Didier,

das kann ich mir nicht erklären und auch nicht nachvollziehen.

Da es aber offensichtlich darum geht, ein Blatt zu erstellen und wenn es das schon gibt --> Fehler 1004 <-- eben nicht. Keine Ahnung, warum Dir die Prozedur die Prozedur zwar die MsgBox anzeigt, dann aber nicht aussteigt, sondern im Else-Code weitermacht.

Da ich nicht weiß, wie Dein Problem zu lösen ist, hier eine Alternative, die das Problem umgeht bzw. gar nicht verursachen sollte. Frag einfach vorher ab, ob es das Blatt schon gibt und wenn nein, dann erstell es:

Viel Erfolg,
Charlie

Anzeige
Danke viel Mal
21.08.2002 15:57:48
Didier
endlich klappt es! vielen Dank für deine Mühe!!!
Gruss
Didier
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Exit Sub in Excel VBA: So stoppst du dein Makro


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Erstelle ein neues Makro: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Schreibe die Prozedur: Füge den folgenden Code ein, um ein einfaches Makro zu erstellen:

    Sub MeinMakro()
       If SomeCondition Then
           Exit Sub
       End If
       ' Weitere Codezeilen
    End Sub
  4. Verwende Exit Sub: Setze Exit Sub an die Stelle, an der das Makro beendet werden soll, z.B. bei einer bestimmten Bedingung.


Häufige Fehler und Lösungen

  • Fehler 1004: Wenn du mit On Error arbeitest, kann es sein, dass dein Makro trotz Exit Sub nicht stoppt. Stelle sicher, dass keine anderen Fehler auftreten, die den Code weiterlaufen lassen.

  • Falsche Platzierung von Exit Sub: Achte darauf, dass Exit Sub innerhalb der richtigen Bedingung steht. Wenn du z.B. If ... Then Exit Sub verwendest, überprüfe, ob die Bedingung auch tatsächlich erfüllt ist.


Alternative Methoden

  • End Sub verwenden: In manchen Fällen kann es sinnvoll sein, End Sub zu verwenden, um das Makro zu beenden. Beachte jedoch, dass dies nicht empfohlen wird, wenn du Fehlerbehandlung implementiert hast.

  • Fehlerbehandlung: Mit On Error GoTo kannst du Fehler abfangen und das Makro an einer bestimmten Stelle beenden. Beispiel:

    On Error GoTo Fehlerbehandlung
    ' Code
    Exit Sub
    
    Fehlerbehandlung:
       MsgBox "Ein Fehler ist aufgetreten."
       Exit Sub

Praktische Beispiele

  1. Ein einfaches Makro mit Exit Sub:

    Sub BeispielMakro()
       If Range("A1").Value = "" Then
           MsgBox "A1 darf nicht leer sein!"
           Exit Sub
       End If
       ' Weitere Bearbeitung
    End Sub
  2. Mit Fehlerabfrage:

    Sub FehlerPruefen()
       On Error GoTo Fehler
       ' Code, der einen Fehler verursachen kann
       Exit Sub
    
    Fehler:
       MsgBox "Fehler aufgetreten: " & Err.Description
       Exit Sub
    End Sub

Tipps für Profis

  • Vermeide Stop Sub: Anstatt Stop Sub zu verwenden, arbeite mit Exit Sub, um die Lesbarkeit deines Codes zu verbessern.
  • Kombination mit If Then: Verwende If Then Exit Sub, um den Code klar und effizient zu gestalten.
  • Debugging: Nutze den Debugger, um herauszufinden, warum dein Makro nicht wie gewünscht stoppt. Setze Breakpoints und überprüfe die Werte der Variablen.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Exit Sub und End Sub?
Exit Sub beendet die Ausführung der aktuellen Sub-Prozedur, während End Sub die Prozedur einfach abschließt, ohne spezifisch anzugeben, dass die Ausführung gestoppt wird.

2. Wie kann ich ein Makro in Excel VBA stoppen?
Du kannst Exit Sub verwenden, um die Ausführung an einer bestimmten Stelle zu beenden. Achte darauf, dass die Bedingungen korrekt gesetzt sind.

3. Was mache ich, wenn Exit Sub nicht funktioniert?
Überprüfe deine Bedingungen und stelle sicher, dass Exit Sub nicht übersprungen wird. Achte auch darauf, dass keine anderen Fehler den Code weiterlaufen lassen.

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