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

Schließen-Kreuz in Userform

Forumthread: Schließen-Kreuz in Userform

Schließen-Kreuz in Userform
25.04.2005 08:17:12
Andreas
Hi to all,
ich habe ein (hoffentlich) kleines Problemchen. Und zwar habe ich ein Userform entworfen mit zwei Schaltflächen "OK" und "Abbrechen". Soweit funzt alle auch ohne Probleme.
Jetzt möchte ich aber, dass beim schließen über das "Schließen-Kreuz" (rechts oben im Userform) dieselbe Prozedur abläuft wie bei Betätigung des Buttons "Abbrechen". Alternativ wäre ich auch schon glücklich, wenn erst gar kein "Schließen-Kreuz" angezeigt würde.
Vielen dank im voraus,
Andreas
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Schließen-Kreuz in Userform
25.04.2005 08:19:52
Hajo_Zi
Hallo Andreas,
benutze
Private Sub UserForm_Terminate()
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.



"Wer Rechtschreibfehler findet, darf sie behalten!" Dies gilt auch für Bert.
Anzeige
AW: Schließen-Kreuz in Userform
25.04.2005 08:28:01
Andreas
Hallo Hajo,
das geht in meinem Fall leider nicht. Bei dem Userform handelt es sich um eine Passwortabfrage. D.h. nach click auf OK wird das Passwort geprüft - bei gegebener Gültigkeit öffnet sich Excel und gleichzeitig schließt sich das Form - und da haben wir das Problem, da sich bei click auf Abbrechen Excel schließt ohne zu speichern.
Gruß,
Andreas
Anzeige
Passwort im Beispiel ist so_what
25.04.2005 08:35:56
Ralf
Hallo Andreas,
hier mal ein Beispiel - Passwort ist so_what:
https://www.herber.de/bbs/user/21653.xls
Code aus Archiv von K.Rola.
Hoffe es hilft.
Gruß
Ralf
AW: Schließen-Kreuz in Userform
25.04.2005 08:47:07
Andreas
Hallo Hajo, hallo Ralf,
vielen dank. Hat funktioniert.
Grüße,
Andreas
Anzeige
AW: Schließen-Kreuz in Userform
25.04.2005 08:35:24
Heiko
Hallo
so geht´s.

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

Wenn du das Kreuz weghaben möchtest, da gibt es ne API Lösung von K.Rola, mußt mal in die Recherche schauen.
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Schließen-Kreuz in der Excel Userform handhaben


Schritt-für-Schritt-Anleitung

Um das Schließen-Kreuz in deiner Excel VBA Userform zu steuern und beispielsweise die gleiche Prozedur wie bei der Schaltfläche "Abbrechen" auszuführen, kannst du folgende Schritte befolgen:

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

  2. Wähle dein Userform aus: Klicke im Projektfenster auf dein Userform.

  3. Füge den folgenden Code ein:

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
       If CloseMode = vbFormControlMenu Then
           Cancel = True
           ' Hier kannst du die Abbrechen-Prozedur aufrufen
           Call Abbrechen
       End If
    End Sub
  4. Definiere die Abbrechen-Prozedur: Stelle sicher, dass du eine Prozedur namens Abbrechen hast, die das gewünschte Verhalten beim Schließen des Userforms umsetzt.


Häufige Fehler und Lösungen

  • Problem: Das "Schließen-Kreuz" bleibt trotz der Implementierung des Codes sichtbar.

    • Lösung: Stelle sicher, dass der Code im UserForm_QueryClose korrekt eingegeben wurde. Überprüfe auch, dass du das richtige CloseMode verwendest.
  • Problem: Die Userform schließt nicht wie gewünscht.

    • Lösung: Achte darauf, dass Cancel = True gesetzt wird, um das Schließen zu verhindern, und rufe die Abbrechen-Prozedur auf.

Alternative Methoden

Wenn du das Schließen-Kreuz komplett entfernen möchtest, kannst du eine API-Lösung verwenden. Diese Methode erfordert etwas mehr Aufwand, bietet aber eine vollständige Kontrolle über das Userform.

Füge diesen Code in dein Userform ein, um das Schließen-Kreuz zu deaktivieren:

Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
    ByVal hwnd As LongPtr, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long

Private Const GWL_STYLE As Long = -16
Private Const WS_SYSMENU As Long = &H80000

Private Sub UserForm_Initialize()
    SetWindowLong Me.hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) And Not WS_SYSMENU
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du das Schließen-Kreuz in einer Excel VBA Userform behandelt:

  1. Userform mit Passwortabfrage:

    • Erstelle ein Userform mit einem Textfeld für das Passwort und zwei Schaltflächen „OK“ und „Abbrechen“.
    • Implementiere den Code aus der Schritt-für-Schritt-Anleitung, um das gewünschte Verhalten beim Schließen zu erreichen.
  2. Interaktive Anwendung:

    • Du kannst auch zusätzliche Logik in die Abbrechen-Prozedur einfügen, um Daten zu speichern oder andere Aktionen durchzuführen, bevor die Userform geschlossen wird.

Tipps für Profis

  • Nutze Module für wiederverwendbare Prozeduren: Wenn du oft ähnliche Userforms erstellst, speichere wiederverwendbare Prozeduren in einem Modul, um den Code sauberer und wartungsfreundlicher zu gestalten.
  • Testen nicht vergessen: Teste dein Userform gründlich, um sicherzustellen, dass alle Wege (OK, Abbrechen, Schließen-Kreuz) korrekt verarbeitet werden.
  • Debugging: Verwende Debugging-Optionen wie MsgBox oder das Debug-Fenster, um zu sehen, ob die gewünschten Prozeduren aufgerufen werden.

FAQ: Häufige Fragen

1. Wie kann ich das Schließen-Kreuz in einer Excel Userform komplett entfernen?
Du kannst die API-Funktion SetWindowLong verwenden, um das "Schließen-Kreuz" zu deaktivieren, wie im Abschnitt "Alternative Methoden" beschrieben.

2. Was passiert, wenn ich den Code nicht richtig implementiere?
Wenn der Code nicht korrekt ist, könnte es passieren, dass die Userform nicht wie gewünscht schließt oder das Schließen-Kreuz weiterhin sichtbar bleibt. Achte darauf, den Code genau zu überprüfen.

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