Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: UserForm mit X beenden und weiter machen

UserForm mit X beenden und weiter machen
05.07.2020 19:58:44
Sabbel
Hallo,
ich rufe das Userform so auf .. und möchte dass dann die Mehtode weiter läuft

Sub Userform aufrufen()
‚ Methode durchführen
Userform1.show
‚Methode weiterführen
End sub

Wenn man einen Button klickt wird der Userform beendet und die obere Methode weiter geführt.
Private Sub CommandButton2_Click()
Unload Me
End Sub

Das funktioniert bestens
Nun möchte ich wenn man das X klickt die Userform geschlossen wird
Das habe ich so gemacht
Public Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End
End Sub

Aber bei Unload Me (beim Klicken von CommandButton2 wird dann auch die oberste Methode durch das End beendet. Was kann ich machen das beim Klicken des X die allererste Methode in der die Userform aufgerufen wird weiterlauft und nicht beendet wird.
Gruß
Sabbel
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm mit X beenden und weiter machen
05.07.2020 20:09:00
Hajo_Zi
Hallo Sabel,
für das X brauchst Du keinen Code

AW: UserForm mit X beenden und weiter machen
05.07.2020 20:14:45
Sabbel
Wenn ich X ohne einen Code Klicke wird die zuerst gestartete Methode weiter geführt.
Die soll aber abgebrochen werden.
AW: UserForm mit X beenden und weiter machen
05.07.2020 20:16:35
Hajo_Zi
ich baue keine Datei nach.
Ich hätte
Private Sub UserForm_Terminate()
benutzt.
Gruß Hajo
Anzeige
Hier eine Testmappe
05.07.2020 20:42:51
Sabbel
Hallo
Ich habe mal eine Test Mappe erstellt.
Wenn man X klickt soll dennoch "Test" in Zelle C4 geschrieben werden da nur die Userform geschlossen werden soll aber die Methode weiterlaufen.
Wenn ich das einfüge
Public Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Marko wird ausgeführt
End
End Sub

Wird nie Test in die Zelle D4 geschrieben
Anzeige
AW: Ups .. hier die Mappe
06.07.2020 07:07:56
Luschi
Hallo Sabbel,
hier mal die Vba-Online-Hebe bemüht:

End
Beendet die Ausführung sofort. Wird nie für sich selbst benötigt, kann jedoch
an einer beliebigen Stelle in einer Prozedur eingefügt werden, um die
Codeausführung zu beenden, Dateien, die mit der Open -Anweisung geöffnet wurden,
zu schließen und Variablenzu löschen.
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

UserForm in Excel VBA effizient schließen und weiterarbeiten


Schritt-für-Schritt-Anleitung

Um eine UserForm in Excel VBA zu schließen und gleichzeitig eine laufende Methode fortzusetzen, kannst Du folgende Schritte befolgen:

  1. UserForm erstellen: Erstelle eine UserForm in Deinem VBA-Projekt.

  2. Methode aufrufen: Rufe die Methode auf, die Du vor dem Öffnen der UserForm ausführen möchtest. Beispiel:

    Sub Userform_aufrufen()
        ' Methode durchführen
        Call MethodeDurchfuehren
        UserForm1.Show
        ' Methode weiterführen
        Call MethodeWeiterfuehren
    End Sub
  3. Button zum Schließen der UserForm: Füge einen Button hinzu, der die UserForm schließt. Dieser Button sollte den folgenden Code enthalten:

    Private Sub CommandButton1_Click()
        Unload Me
    End Sub
  4. X-Button zum Schließen: Um die UserForm mit dem X-Button zu schließen, implementiere den folgenden Code in die UserForm:

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        If CloseMode = vbFormControlMenu Then
            ' Hier kannst Du einen Code hinzufügen, um die Methode fortzusetzen
            Call MethodeWeiterfuehren
        End If
    End Sub

Häufige Fehler und Lösungen

Fehler: Wenn Du den X-Button verwendest, wird die Methode nicht fortgesetzt.

Lösung: Stelle sicher, dass Du im UserForm_QueryClose-Ereignis keinen End-Befehl verwendest, da dieser die gesamte Ausführung stoppt. Stattdessen solltest Du sicherstellen, dass die Methode, die Du fortsetzen möchtest, korrekt aufgerufen wird.


Alternative Methoden

Eine weitere Möglichkeit, die UserForm zu schließen, ohne die Methode zu beenden, besteht darin, die UserForm_Terminate-Methode zu verwenden:

Private Sub UserForm_Terminate()
    ' Hier kannst Du Code hinzufügen, um Aktionen beim Schließen der UserForm auszuführen
End Sub

Diese Methode wird aufgerufen, wenn die UserForm geschlossen wird. Achte darauf, dass Du hier keine End-Anweisung verwendest.


Praktische Beispiele

Hier ist ein Beispiel, wie Du sicherstellen kannst, dass beim Schließen der UserForm mit dem X-Button eine bestimmte Aktion ausgeführt wird:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
        Worksheets("Sheet1").Range("C4").Value = "Test"
    End If
End Sub

In diesem Fall wird in Zelle C4 der Text "Test" geschrieben, wenn die UserForm mit dem X-Button geschlossen wird.


Tipps für Profis

  • Vermeide die Verwendung des End-Befehls, um die Ausführung nicht abrupt zu beenden.
  • Nutze die Möglichkeit, mehrere UserForms in einer Anwendung zu verwenden, um die Benutzeroberfläche zu verbessern.
  • Teste Deine UserForms gründlich, um sicherzustellen, dass beim Schließen alle gewünschten Aktionen ausgeführt werden.

FAQ: Häufige Fragen

1. Wie kann ich die UserForm schließen, ohne die gesamte Methode zu beenden?
Verwende den UserForm_QueryClose-Ereignis, um sicherzustellen, dass die Methode fortgesetzt wird, wenn die UserForm geschlossen wird.

2. Was passiert, wenn ich End in meinem Code verwende?
Der End-Befehl beendet die gesamte Ausführung des Codes, was nicht gewünscht ist, wenn Du die UserForm schließen, aber die Methode fortsetzen möchtest.

3. Gibt es eine Möglichkeit, bestimmte Aktionen beim Schließen der UserForm auszuführen?
Ja, Du kannst den UserForm_Terminate-Ereignis verwenden, um Code auszuführen, wenn die UserForm geschlossen wird.

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