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

Forumthread: UserForm "X" schließen

UserForm "X" schließen
03.02.2005 19:11:37
Thorsten
Hallo zusammen,
ich habe mal eine kurze Frage und hoffe es sind nicht alle Altweiber feiern.
wie kann ich das "X" (schließen des UserForm) deaktivieren, so dass man über dieses "X" das Makro (Programm) nicht beenden kann, sondern nur über einen "Cancel"-Button. Der Cancel-Button ist schon mit Funktionen vorhanden. Jedoch darf man das UserForm nicht über das "X" beenden, da sonst nicht alle Daten rückgängig gemacht werden wie bei dem Cancel-Button.
Ich hoffe jemand kann mir bei diesem Problem weiter helfen.
Besten Dank schon mal
Gruss
Thorsten
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm "X" schließen - Gegenfrage
Luc
Hallo Thorsten,
wär's nicht einfacher die Bedingungen/Zustände, die beim Schließen mit X auftreten abzufragen und dann das gleiche auszulösen, was auch Cancel auslöst? Ich fürchte nämlich, das wird nicht so einfach mit dem deaktivieren. Wenn du im Objekteigenschaftenmenü keinen Bezug dazu findest, seh ich schwarz.
Gruß Luc
Anzeige
AW: UserForm "X" schließen - Gegenfrage
03.02.2005 19:21:15
Thorsten
Hallo Luc,
dies geht natürlich auch. du meinst also einfach die gleich Funktion beim drucken von dem "X" ausführen wie bei cancel. das sollte funktionier.
Aber wie kann ich hinter diesem "X" eine funktion bzw. befehle ausführen.
Ich hoffe du kannst mir da auch weiterhelfen.
Gruss und danke für die Idee
Thorsten
Anzeige
AW: UserForm "X" schließen - Gegenfrage
03.02.2005 19:31:17
Thorsten
STOP STOP STOP,
danke für eure Hilfe, habe die Lösung gefunden, sowie Luc es beschreiben hat.
Danke für Eure Hilfe
gruss
Thorsten
AW: UserForm "X" schließen
03.02.2005 19:21:18
Josef
Hallo Thorsten!
Das geht so:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub

Userfreundlicher ist aber sicher der Ansatz von Luc!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
@Sepp - Danke für die Info! - owT
Luc
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

UserForm "X" schließen in Excel VBA


Schritt-für-Schritt-Anleitung

Um das "X" (Schließen-Button) deiner UserForm in Excel VBA so zu konfigurieren, dass es nicht das Programm beendet, kannst du die UserForm_QueryClose-Ereignisprozedur verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du das umsetzen kannst:

  1. Öffne den VBA-Editor (Alt + F11).

  2. Wähle die UserForm aus, die du anpassen möchtest.

  3. Klicke mit der rechten Maustaste auf die UserForm und wähle "Code anzeigen".

  4. Füge den folgenden Code in das Codefenster der UserForm ein:

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
       If CloseMode = 0 Then Cancel = True
    End Sub
  5. Speichere Deine Arbeit und teste die UserForm.

Mit diesem Code wird das Schließen über das "X" (Excel UserForm schließen) verhindert, und der Benutzer kann die UserForm nur über einen definierten "Cancel"-Button schließen.


Häufige Fehler und Lösungen

  • Fehler: Die UserForm schließt trotzdem mit dem "X".

    • Lösung: Stelle sicher, dass der Code korrekt in die UserForm_QueryClose-Ereignisprozedur eingefügt wurde.
  • Fehler: Der "Cancel"-Button funktioniert nicht wie gewünscht.

    • Lösung: Überprüfe die Zuordnung der Funktionen des "Cancel"-Buttons und teste den Ablauf.

Alternative Methoden

Wenn Du die Schließfunktion des "X" nicht vollständig deaktivieren möchtest, kannst du eine alternative Methode wählen, bei der Du beim Schließen über das "X" die gleiche Funktion wie beim "Cancel"-Button ausführst. Hier ist ein Beispiel:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormCode Then
        ' Füge hier die Funktionalität des Cancel-Buttons ein
        Call CancelButtonFunction
        Cancel = True
    End If
End Sub

Sub CancelButtonFunction()
    ' Deine Logik für den Cancel-Button
End Sub

Praktische Beispiele

Angenommen, Du hast ein UserForm mit einem "Cancel"-Button, der Daten zurücksetzt. Du kannst den gleichen Code für den "X"-Button verwenden, um sicherzustellen, dass die Daten richtig behandelt werden. Hier ein weiteres Beispiel:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormCode Then
        ' Hier die Funktion für das Zurücksetzen der Form
        Call ResetForm
        Cancel = True
    End If
End Sub

Sub ResetForm()
    ' Setze alle Eingabefelder zurück
    Me.TextBox1.Value = ""
    Me.TextBox2.Value = ""
End Sub

Tipps für Profis

  • Nutze "Debug.Print" oder "MsgBox", um den Status der UserForm während des Schließvorgangs zu überprüfen, falls Du auf Probleme stößt.
  • Experimentiere mit verschiedenen CloseMode-Werten, um das Verhalten Deiner UserForm weiter anzupassen.
  • Denke daran, dass eine klare Benutzerführung wichtig ist; informiere die Benutzer, wie sie die UserForm schließen können.

FAQ: Häufige Fragen

1. Frage: Kann ich die Schließfunktion des "X" vollständig deaktivieren?
Antwort: Ja, das kannst du mit dem UserForm_QueryClose-Ereignis tun, indem du Cancel = True setzt, wenn CloseMode = 0 ist.

2. Frage: Was ist der Unterschied zwischen CloseMode 0 und 1?
Antwort: CloseMode = 0 bedeutet, dass die UserForm über das "X" geschlossen wird, während CloseMode = 1 bedeutet, dass sie durch den Code (z. B. Unload) 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