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

Prozedur beenden, wenn UserForm abbrechen gedrückt

Forumthread: Prozedur beenden, wenn UserForm abbrechen gedrückt

Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 15:08:22
Max Seitl
Hallo Leute,
Wie beende ich die Codeausführung, wenn in einer UserForm
auf «abbrechen» gedrückt wurde?

Wie beendet man richtig?
mit freundlichen Grüßen,
Max Seitl


Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 15:12:36
Hajo_Zi
Halo Max

hast Du ein CommandButton Abbrechen dan schreibe dort nur End

oder willst Du verhindern das jemand das X in der Userform drückt. Dann folgenden Code in die Userform.

vergesse aber nicht den endeButton in der Userform.

Gruß Hajo

Re: Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 15:16:41
Michael Scheffler
Hallo,

So könntest Du in cmdAbbrechen_Click das so machen:
Me.Tag = "Abbrechen"
Me.Hide

Und bei Ok:
Me.Tag = "Ok"
Me.Hide

Und in Deinem Hauptprogramm kannst Du das Tag auslesen:

Select Case frmSaveAs.Tag
Case "Abbrechen"
MsgBox "Abbruch"
Case "Ok"
MsgBox "Abbruch"
End Select

Unload frmSaveAs



Anzeige
Re: Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 16:06:19
Max Seitl
Danke erstmal, Hajo

Obiger Code schließt nur die UserForm,
ich möchte aber nach Schliessen der UserForm die Prozedur insgesamt
an dieser Stelle beenden, falls in der UserForm
«abbrechen» gedrückt wurde.

Die Frage ist einfach, wie verarbeite ich das Click-Ereignis weiter,
oder kann ich in dem Zusammenhang mit ...Application.Caller ... irgendetwas ausrichten?

mit freundlichen Grüßen,
Max Seitl



Anzeige
Re: Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 16:09:20
Hajo_Zi
Hallo Max

so wie ich schon geschrieben habe
ersetzte
Unload Me

durch
end

Gruß Hajo

Re: Prozedur beenden, wenn UserForm abbrechen gedrückt
19.12.2002 16:25:08
Max Seitl
Danke Hajo, das wars.
mit freundlichen Grüßen,
Max Seitl
;
Anzeige

Infobox / Tutorial

Prozedur beenden bei UserForm-Abbruch in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Prozedur in Excel VBA zu beenden, wenn der Benutzer auf die Abbrechen-Schaltfläche (Cancel Button) in einer UserForm klickt, kannst du folgende Schritte befolgen:

  1. Erstelle eine UserForm mit einem CommandButton für den Abbruch.

  2. Füge den folgenden Code in die UserForm ein:

    Private Sub cmdAbbrechen_Click()
       Me.Tag = "Abbrechen"
       Me.Hide
    End Sub
    
    Private Sub cmdOK_Click()
       Me.Tag = "Ok"
       Me.Hide
    End Sub
  3. Verarbeite das Ergebnis in deiner Hauptprozedur:

    Sub HauptProzedur()
       Dim frm As UserForm
       Set frm = New UserForm
       frm.Show
    
       Select Case frm.Tag
           Case "Abbrechen"
               MsgBox "Die Aktion wurde abgebrochen."
               Exit Sub ' Prozedur abbrechen
           Case "Ok"
               MsgBox "Aktion erfolgreich."
       End Select
    
       Unload frm
    End Sub

Mit diesem Code kannst du sicherstellen, dass die vba prozedur abbrechen wird, wenn der Benutzer die Abbrechen-Schaltfläche drückt.


Häufige Fehler und Lösungen

  • Fehler: UserForm schließt sich, aber Prozedur läuft weiter.

    • Lösung: Stelle sicher, dass du Exit Sub in den entsprechenden Select Case-Anweisungen verwendest.
  • Fehler: Tag wird nicht richtig gesetzt.

    • Lösung: Überprüfe, ob du den richtigen Namen für den CommandButton verwendest und dass die Tag-Variable im Code korrekt gesetzt wird.

Alternative Methoden

Alternativ kannst du auch den Unload Me Befehl verwenden, aber in diesem Fall wird die Prozedur nicht sofort beendet. Um sicherzustellen, dass die vba aktion abbrechen, kannst du die Prozedur in der UserForm selbst beenden:

Private Sub cmdAbbrechen_Click()
    Unload Me
    End ' Beendet die gesamte Prozedur
End Sub

Dies kann nützlich sein, wenn du die UserForm ohne zusätzliche Logik schließen möchtest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die UserForm mit einer Abbrechen-Schaltfläche einrichten kannst:

  1. UserForm erstellen: Füge zwei CommandButtons hinzu – einen für "OK" und einen für "Abbrechen".

  2. Code für die Buttons:

    Private Sub cmdAbbrechen_Click()
       Me.Tag = "Abbrechen"
       Me.Hide
    End Sub
    
    Private Sub cmdOK_Click()
       Me.Tag = "Ok"
       Me.Hide
    End Sub
  3. Hauptprozedur:

    Sub BeispielProzedur()
       Dim frm As New UserForm
       frm.Show
    
       If frm.Tag = "Abbrechen" Then
           MsgBox "Prozedur wird abgebrochen."
           Exit Sub
       End If
    
       MsgBox "Aktion erfolgreich abgeschlossen."
    End Sub

Tipps für Profis

  • Nutze die Application.Caller-Eigenschaft, um herauszufinden, welcher Button gedrückt wurde.
  • Du kannst auch die Cancel-Eigenschaft des CommandButtons auf True setzen, um die Standardverhalten bei Drücken der ESC-Taste zu nutzen.
  • Kommentiere deinen Code gut, um später einfacher nachvollziehen zu können, wo und wie du die excel vba abbrechen Logik implementiert hast.

FAQ: Häufige Fragen

1. Wie kann ich die UserForm schließen, ohne den Code zu beenden?
Verwende einfach Unload Me und stelle sicher, dass die Logik im Hauptprogramm entsprechend angepasst ist.

2. Was passiert, wenn ich die Esc-Taste drücke?
Wenn du die Cancel-Eigenschaft der Abbrechen-Schaltfläche auf True setzt, wird die UserForm geschlossen und das Click-Ereignis wird ausgelöst, als ob der Button geklickt wurde.

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