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

Ereignis Schliessen einer UserForm

Forumthread: Ereignis Schliessen einer UserForm

Ereignis Schliessen einer UserForm
14.10.2003 11:33:49
Marco
Hallo Leute,

ich möchte bitte wissen, wie man das Ereignis "Klick auf das x" rechts oben
in einer UserForm reagiert ! Das Schließen eines Modalen und zwingenden Dialoges möchte ich nämlich vermeiden !

1.) Ich will entweder den klick auf das x zum Fenster schließen abfangen oder
2. ) das Fenster ganz ohne x darstellen und dem User damit die Möglichkeit nehmen das Fenster schließen zu können !

Merci bereits vorweg !
Gruß
Marco
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignis Schliessen einer UserForm
14.10.2003 11:35:56
Hajo_Zi
allo
arco


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'   Damit mit X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Anzeige
AW: Ereignis Schliessen einer UserForm
14.10.2003 12:28:23
Hajo_Zi
Hallo Marco

da sind wohl paar Buchstaben verloren gegangen. Endschuldigung.


Microsoft MVP für Excel


http://home.media-n.de/ziplies/

Anzeige
;
Anzeige

Infobox / Tutorial

UserForm in VBA schließen: So reagierst Du auf das Schließen-Ereignis


Schritt-für-Schritt-Anleitung

Um das Ereignis "Klick auf das X" in einer UserForm abzufangen, kannst Du den folgenden VBA-Code verwenden:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ' Damit mit X nicht geschlossen werden kann
    If CloseMode = 0 Then
        MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
        Cancel = 1
    End If
End Sub
  1. Öffne die VBA-Entwicklungsumgebung in Excel (Alt + F11).
  2. Wähle die UserForm aus, in der Du das Schließen-Ereignis steuern möchtest.
  3. Füge den obigen Code in das Codefenster der UserForm ein.
  4. Speichere die Änderungen und teste die UserForm.

Mit diesem Code kannst Du verhindern, dass die UserForm durch einen Klick auf das X geschlossen wird. Stattdessen wird eine Nachricht angezeigt, die den Benutzer darauf hinweist, das Fenster auf eine andere Weise zu schließen.


Häufige Fehler und Lösungen

  • Fehler: Die UserForm schließt sich trotzdem.

    • Lösung: Stelle sicher, dass der Code im UserForm_QueryClose-Ereignis korrekt platziert ist und dass Du die Variable Cancel auf 1 setzt.
  • Fehler: Die Nachricht wird nicht angezeigt.

    • Lösung: Überprüfe den CloseMode. Der Wert sollte 0 sein, um den Schließen-Vorgang abzufangen.

Alternative Methoden

Falls Du das Schließen der UserForm ganz ohne X ermöglichen möchtest, kannst Du die UserForm so gestalten, dass sie kein X anzeigt:

  1. Setze die Eigenschaft ControlBox der UserForm auf False.
  2. Dadurch wird das X-Button entfernt und der Benutzer kann die UserForm nur über die Schaltfläche zum Schließen beenden.

Praktische Beispiele

Angenommen, Du hast eine UserForm mit dem Namen MeinFormular. Du kannst den folgenden Code verwenden, um das Schließen-Ereignis zu verhindern:

Private Sub MeinFormular_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        MsgBox "Bitte verwenden Sie die Schaltfläche zum Beenden.", vbCritical
        Cancel = 1
    End If
End Sub

Dieses Beispiel zeigt, wie wichtig es ist, das UserForm_QueryClose-Ereignis anzupassen, um die Kontrolle über das Schließen der UserForm zu behalten.


Tipps für Profis

  • Nutze das UserForm_QueryClose-Ereignis nicht nur zum Schließen, sondern auch, um Daten zu speichern oder um Benutzereingaben zu validieren, bevor das Fenster geschlossen wird.
  • Erwäge, eine benutzerdefinierte Schaltfläche "Schließen" in Deine UserForm einzufügen, die das Schließen der Form kontrolliert und dem Benutzer die Möglichkeit gibt, Änderungen zu bestätigen.

FAQ: Häufige Fragen

1. Wie kann ich das Schließen der UserForm mit einer Bedingung verknüpfen? Du kannst die Abfrage im UserForm_QueryClose-Ereignis so anpassen, dass sie nur unter bestimmten Bedingungen ausgeführt wird. Zum Beispiel:

If SomeCondition Then
    ' Schließen erlauben
Else
    ' Schließen verhindern
    Cancel = 1
End If

2. Kann ich das Schließen der UserForm auch mit einer anderen Taste steuern? Ja, Du kannst die Eingabe von Tasten wie Esc oder Enter in der UserForm abfangen und entsprechende Aktionen durchführen, um die UserForm zu schließen oder zu verhindern, dass sie 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