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

Forumthread: Unterschied UserForm.Hide und Unload Me

Unterschied UserForm.Hide und Unload Me
Markus
Hallo,
ich habe erst vor Kurzem angefangen, mit UserForms zu arbeiten und habe gelesen, dass es neben der .Hide Methode auch die Möglichkeit über Unload Me gibt.
Ich vermute, dass .Hide die UF nur ausblendet, sie aber irgendwo noch im Cache speichert, während Unload Me sie komplett schließt.
Dazu 2 Fragen:
1) Stimmt das so und gibt es sonst noch Unterschiede zwischen den beiden Wegen ?
2) Wenn ich eine UF mit Unload Me schließen möchte, wie muss ich den Code dann schreiben ?
VG und vielen Dank im Voraus für jede Hilfe,
Markus
Anzeige
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 13:37:13
Nepumuk
Hallo,
1. Unload löscht das Userform aus der Userforms-Auflistung.
2. Na einfach: Unload Me
Gruß
Nepumuk
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 14:18:47
Markus
Hallo Nepumuk,
vielen Dank.
.Unload Me funktioniert bei mir in manchen Codes nicht, z.B. in UserForm_QueryClose.
Weisst Du, woran das liegen kann ?
In anderen Codes funktioniert es, allerdings kann ich dann nicht mehr in der Tabelle arbeiten, solange die UserForm geöffnet ist.
Gibt es eine entsprechende Alternative auch zu UserForm.Show ?
VG, Markus
Anzeige
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 14:23:05
Nepumuk
Hallo,
wieso .Unload Me? Was soll der Punkt?
Im QueryClose-Event ist das Userform doch schon am schließen. Warum willst du im Schließen-Prozess nochmal schließen?
Gruß
Nepumuk
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 14:31:32
Markus
Hallo Nepumuk,
ich habe geschrieben, dass ich mit UserForms noch nicht viel Erfahrung habe und suche hier im Forum Antworten zu meinen Fragen, damit ich künftig auch ohne Hilfe damit klar komme.
Kannst Du diesen Thread bitte offen lassen, damit mir andere helfen können, die vielleicht etwas mehr Zeit haben und alle meine Fragen beantworten oder mir auch ein paar Erklärungen geben können ?
VG,
Markus
Anzeige
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 15:01:51
hary
Hallo Markus

allerdings kann ich dann nicht mehr in der Tabelle arbeiten

Du kannst in der Eigenschaft des UserForms showmodal auf False setzen. Form bleibt sichtbar und du kannst in der Tabelle arbeiten.
gruss hary
AW: Unterschied UserForm.Hide und Unload Me
25.07.2012 15:07:55
Markus
Hallo Hary,
vielen Dank für die Hilfe - klappt super !
VG und einen schönen Nachmittag noch,
Markus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Unterschiede zwischen UserForm.Hide und Unload Me in Excel VBA


Schritt-für-Schritt-Anleitung

  1. UserForm.Hide verwenden:

    • Um ein UserForm auszublenden, kannst Du den folgenden Code verwenden:
      UserForm1.Hide
    • Dies blendet das UserForm aus, ohne es aus dem Speicher zu entfernen. Es bleibt also im Hintergrund aktiv.
  2. Unload Me verwenden:

    • Um ein UserForm komplett zu schließen und aus dem Speicher zu entfernen, verwendest Du:
      Unload Me
    • Dies entfernt das UserForm vollständig und Du kannst es bei Bedarf erneut öffnen.
  3. UserForm.Show:

    • Um ein UserForm anzuzeigen, benutze:
      UserForm1.Show
    • Standardmäßig wird das UserForm modal (modal bedeutet, dass Du nicht mit anderen Fenstern interagieren kannst, solange das UserForm offen ist).
  4. Modalität ändern:

    • Um in der Tabelle arbeiten zu können, während das UserForm sichtbar ist, setze die ShowModal-Eigenschaft auf False:
      UserForm1.Show vbModeless

Häufige Fehler und Lösungen

  • Fehler: UserForm lässt sich nicht schließen:

    • Wenn Du versuchst, das UserForm im UserForm_QueryClose-Ereignis mit Unload Me zu schließen, kann dies zu Problemen führen. Stattdessen solltest Du den Schließen-Prozess nicht erneut auslösen.
  • Lösung: Stelle sicher, dass Du Unload Me nicht im QueryClose-Ereignis verwendest. Stattdessen kannst Du Me.Hide verwenden, um das UserForm auszublenden, ohne es zu entfernen.


Alternative Methoden

  • Verwendung von Hide und Unload:

    • Du kannst beide Methoden kombinieren, um das UserForm zunächst auszublenden und später bei Bedarf zu entladen.
  • Beispiel:

    ' UserForm ausblenden
    Me.Hide
    ' Später im Code
    Unload Me

Praktische Beispiele

  1. Beispiel für UserForm.Hide:

    Private Sub CommandButton1_Click()
       Me.Hide
    End Sub
  2. Beispiel für Unload Me:

    Private Sub CommandButton2_Click()
       Unload Me
    End Sub
  3. UserForm im QueryClose-Ereignis:

    Private Sub UserForm_QueryClose(Cancel As Integer)
       If MsgBox("Möchten Sie die Anwendung schließen?", vbYesNo) = vbYes Then
           Unload Me
       Else
           Cancel = True
       End If
    End Sub

Tipps für Profis

  • Nutze .Hide für temporäre Ausblendungen, wenn Du die Daten im UserForm später wieder benötigst.
  • Verwende Unload Me, wenn Du sicher bist, dass das UserForm nicht mehr benötigt wird, um den Speicher effizient zu verwalten.
  • Achte darauf, dass die Benutzeroberfläche nicht überladen wird, wenn Du mehrere UserForms gleichzeitig öffnest.

FAQ: Häufige Fragen

1. Was passiert, wenn ich Unload Me im QueryClose-Ereignis verwende? Wenn Du Unload Me im QueryClose-Ereignis verwendest, kann es zu Fehlern kommen, da das UserForm bereits im Schließen-Prozess ist.

2. Wie kann ich ein UserForm modal anzeigen und trotzdem auf die Tabelle zugreifen? Setze die ShowModal-Eigenschaft des UserForms auf False, um es als nicht-modales Form anzuzeigen. Dadurch bleibt die Tabelle zugänglich, während das UserForm offen ist.

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