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

Forumthread: Userform schließen

Userform schließen
10.02.2009 14:38:46
Peter
Hallo zusammen,
mal wieder kämpfe ich mit einer Herausforderung ... und bin nicht auf der Siegerstrasse.
Vielleicht habt Ihr ja eine Idee.
Ich öffne eine Userform (uForm1).
Auf dieser Userform befinden sich u.a. mehrere CommandButtons. Durch Klick auf einen dieser Buttons wird eine weitere Userform (uForm2) geöffnet.
Wenn ich diese zweite Userform nun durch "unload me" schließe, geht automatisch auch die erste Userform mit zu ... das soll sie aber nicht.
Für jeden Tip bin ich Euch riesig dankbar.
Vielen Dank fürs Grübeln
Peter
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform schließen
10.02.2009 14:41:00
selli
hallo peter,
hast du schonmal
uForm2.Hide
versucht?
gruß selli
AW: Userform schließen
10.02.2009 14:44:19
Peter
Hallo Selli
und vielen Dank fürs schnelle Mailen.
uForm2.hide funktioniert und ist für meine Zwecke wahrscheinlich auch in Ordnung - Zuerst also schon mal herzlichen Dank dafür.
Die Frage wäre dennoch: warum geht das auf meine ursprüngliche Weise schief ...
Gruß
Peter
Anzeige
AW: Userform schließen
10.02.2009 14:48:18
selli
hallo peter,
die frage kann ich dir leider auch nicht beantworten.
ich lasse sie deshalb mal offen, vielleicht weiß es ja jemand.
gruß selli
AW: Userform schließen
10.02.2009 14:58:00
Oberschlumpf
Hi Peter
Ich habe...
...Userform1 (UF1) erstellt
...in UF1 2 Buttons hinzugefügt
...Button1 enthält den Code Userform2.Show
...Button2 enthält den Code Unload me
...Userform2 (UF2) erstellt
...in UF2 1 Button hinzugefügt
...dieser Button enthält den Code Unload Me
Nun habe ich UF1 gestartet
Ein Klick auf Button1 öffnet UF2
Ein Klick in UF2 auf Button schließt UF2 - und NUR UF2
Ein Klick in UF1 auf Button2 schließt nun auch UF1
Daher vermute ich, dass in deinem Code irgendwo der Befehl Unload Me auch für dein UF1 dort steht, wo der Code nicht hingehört.
Ach ja...es heißt das Userformular und nicht die Userformular.
Hilfts denn und hast du den Fehler irgendwo im Code gefunden?
Ciao
Thorsten
Anzeige
AW: Userform schließen
10.02.2009 15:03:02
Peter
Hallo Thorsten
und vielen Dank fürs Nachbauen und Nachvollziehen.
In meinem Code steht exakt einmal ein "Unload me" und zwar im Click-Ereignis eines Buttons in Userform1.
Und: auch mittels "unload userform2" schließt sich die userform1 :-(
Gruß
Peter
AW: Userform schließen
10.02.2009 15:06:41
Peter
Nochmal ich ...
in einem Nachbau mit nur zwei userformen und ein paar Buttons klappt's auch bei mir :-) :-(
Ich werde mal genauer im Code suchen - auch wenn ich keine Idee habe wo da etwas schieflaufen könnte
Gruß
Peter
Anzeige
AW: Userform schließen
10.02.2009 15:31:00
Peter
Und schon wieder ich ...
Irgendetwas habe ich gefunden.
Die erste Userform starte ich durch "uform1.Show vbModeless".
Wenn ich den Zusatz "vbModeless" rauslasse dann funktioniert auch "Unload me".
Ich versteh's nicht - Du?
Gruß
Peter
AW: Userform schließen
11.02.2009 10:29:00
Oberschlumpf
Hi Peter
Nein, versteh ich leider auch nicht.
Ich hab in meinem Nachbau UF1 auch mal mit vbModeless geöffnet.
Aber wenn ich UF2 öffne, und dann in UF2 mit Befehl unload me UF2 wieder schließe, ist UF1 immer noch geöffnet und auch weiterhin vbModeless.
Ciao
Thorsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform schließen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA zu schließen, kannst du verschiedene Methoden nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Userform erstellen: Öffne den VBA-Editor (ALT + F11) und füge eine Userform hinzu.

  2. CommandButtons hinzufügen: Platziere einen Button, um die zweite Userform zu öffnen, und einen weiteren Button, um die aktuelle Userform zu schließen.

  3. Code für das Schließen: Füge im Button, der die Userform schließen soll, den folgenden Code ein:

    Private Sub CommandButton1_Click()
       Userform2.Show ' Öffnet die zweite Userform
    End Sub
    
    Private Sub CommandButton2_Click()
       Unload Me ' Schließt die aktuelle Userform
    End Sub
  4. Userform öffnen: Stelle sicher, dass du die erste Userform mit uform1.Show vbModeless öffnest, falls du mehrere Userforms gleichzeitig geöffnet haben möchtest.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Schließen von Userforms ist, dass die erste Userform ebenfalls geschlossen wird, wenn du versuchst, die zweite Userform zu schließen. Hier sind einige Lösungen:

  • Verwendung von .Hide: Anstelle von Unload Me, kannst du Userform2.Hide verwenden, um die zweite Userform zu verbergen, ohne die erste Userform zu schließen.

  • Modus beachten: Wenn du die erste Userform mit vbModeless öffnest, kann dies zu unerwartetem Verhalten führen. Überprüfe, ob du die Userforms korrekt öffnest und schließt.


Alternative Methoden

Es gibt verschiedene Ansätze, um eine Userform in Excel VBA zu schließen:

  • Verwendung von Hide: Statt Unload Me zu verwenden, kannst du Me.Hide nutzen, um die Userform nur zu verbergen.

  • Schließen über ein Ereignis: Du kannst auch das Schließen der Userform an ein Ereignis binden, z.B. beim Klicken eines Buttons in einer anderen Userform.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Userforms in Excel VBA effektiv schließen kannst:

  1. Ein Button zum Schließen:

    Private Sub btnClose_Click()
       Me.Hide ' Versteckt die Userform
    End Sub
  2. Schließen über ein anderes Userform-Ereignis:

    Private Sub Userform_Initialize()
       ' Initialisiere hier deine Userform
    End Sub
    
    Private Sub btnOpenNextForm_Click()
       Userform2.Show
    End Sub

Tipps für Profis

  • Verwende vbModal oder vbModeless: Der Modus, in dem du die Userform öffnest, beeinflusst das Verhalten beim Schließen. Überlege, welcher Modus für deine Anwendung am besten geeignet ist.

  • Debugging: Wenn du Probleme beim Schließen hast, setze Breakpoints in deinem Code. So kannst du prüfen, ob das richtige Ereignis ausgelöst wird.

  • Benutzerfreundlichkeit: Stelle sicher, dass deine Buttons klar beschriftet sind, z.B. „Userform schließen“, um Missverständnisse zu vermeiden.


FAQ: Häufige Fragen

1. Warum schließt sich die erste Userform, wenn ich die zweite schließe?
Das kann daran liegen, dass im Code der ersten Userform der Befehl Unload Me aufgerufen wird, wenn die zweite Userform geschlossen wird. Überprüfe deine Events und stelle sicher, dass du nur die gewünschte Userform schließt.

2. Wie kann ich eine Userform verstecken, ohne sie zu schließen?
Du kannst die Methode Hide verwenden, um die Userform nur zu verbergen, anstatt sie vollständig zu schließen. So bleibt der Zustand der Userform erhalten.

3. Was ist der Unterschied zwischen Unload Me und Me.Hide?
Unload Me entfernt die Userform aus dem Speicher, während Me.Hide die Userform lediglich verbirgt und sie im Speicher behält, sodass ihre Werte und Einstellungen erhalten bleiben.

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