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

Forumthread: Unload Userform

Unload Userform
04.02.2003 21:01:21
Jörg
Hi,

Ich möchte über einen CommandButton eine Userform schließen und ein neue öffnen...

Mit
Private Sub CommandButton1_Click()
Unload Me
Userform2.Show
End Sub

Das klappt eigentlich auch, habe das mit 2 Button hinbekommen,
beim 3 Button allerdings öffnet das Makro zwar die neue Userform, doch die alte bleibt im Hintergrung sichtbar (also wohl nix mit Unload)....woran kann das liegen??
Dazu kommt, dass Userform2 zwar "geöffnet" wird, aber die Funktionen der Buttons auf dieser Userform nicht mehr funktionieren...lasse ich die Userform einzeln laufen klappt alles....
Debuggen zeigt mir auch keinen Fehler...was kann das sein??


Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Unload Userform
04.02.2003 21:14:03
Hajo_Zi

Halo Jörg

schreibe Doch Me.Hide

Gruß Hajo

Me.Hide
04.02.2003 21:36:39
Jörg

Hi,

habe das mir Me.Hide ausprobiert...die Userform bleibt trotzdem im Hintergrund sichtbar und die Userform 2 funktioniert nicht richtig....
Ich verzweifle noch....

Re: Me.Hide
04.02.2003 21:39:01
Hajo_Zi

Hallo Jörg

Me.Hide schließt die Userform

Gruß hajo

Anzeige
Re: Me.Hide
04.02.2003 21:51:02
Jörg

Hi,

habe auch das versucht....bekomme da die Fehlermeldung
"Laufzeitfehler -2147418105(80010007)
Automatisierungsfehler"

:( jetzt läuft nix mehr

Re: Me.Hide
04.02.2003 21:57:51
Hajo_Zi

Hallo Jörg

da habe ich auch kein Ansatz mehr. Als nur noch Starte mal den Rechner neu.

Gruß Hajo

Trotzdem Danke
04.02.2003 22:04:27
Jörg

Ich verstehe die Welt nicht mehr...habe das Me.Hide wieder rausgelöscht, jetzt verschwindet die erste Userform (???MS Shit?)
aber die 2. funktioniert noch nicht richtig...denke Neustart und dann mal warten was so kommt....Danke trotzdem für die Hilfe

Anzeige
Re: Unload Userform
04.02.2003 22:07:00
Mischa Richter

achtung:
unterschied zwischen hide und unload bedenken (Arbeitsspeicher ...) und
application.screeupdating = true oder false ???
bei false wird natürlich die alte userform nicht verborgen, obwohl entladen ....
mischa
www.vb-sok.de.vu

Re: Unload Userform
04.02.2003 22:07:18
JoseP.

Hallo
versuchen so:
Unload UserForm2
Unload UserForm1
Load UserForm3
UserForm3.Show
Gruß José


Anzeige
Re: Trotzdem Danke
04.02.2003 23:46:47
Martin Bolleter

Hallo Jörg

ich würde folgendes vorschlagen:
in der Regel hast du ja in einem Modul die Prozedur, die deine erste UserForm aufruft. Nach dem Abschluss der UF kehrt der Code dann wieder dahin zurück. Ich würde nun also über den CommandButton der 1. UF nur sagen
...
Hide
End sub

und dann in der Prozedur
unload Userform1
userform2.show

womit die 2. UF aufgerufen wird. Damit erreichst du, dass jede UF sauber abgeschlossen wird.

Übrigens: Hide muss immer VOR Unload kommen, sonst gibt's eine Fehlermeldung!

Gruss
Martin

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Userform in Excel VBA korrekt entladen


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel VBA korrekt zu entladen, kannst Du folgendes Vorgehen nutzen, wenn Du einen CommandButton verwendest:

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

  2. Erstelle Deine Userforms: Zum Beispiel UserForm1 und UserForm2.

  3. Füge einen CommandButton auf UserForm1 hinzu und schreibe den folgenden Code:

    Private Sub CommandButton1_Click()
       Unload Me
       UserForm2.Show
    End Sub
  4. Für den CommandButton auf UserForm2 kannst Du ähnliche Logik verwenden, um eventuell UserForm1 zu entladen.

  5. Teste Deine Userforms, um sicherzustellen, dass alles wie gewünscht funktioniert.


Häufige Fehler und Lösungen

  • Problem: Die alte Userform bleibt im Hintergrund sichtbar, obwohl Unload Me verwendet wird.

    • Lösung: Überprüfe, ob Du Application.ScreenUpdating = False in deinem Code hast. Setze es auf True, um sicherzustellen, dass die Userform korrekt aktualisiert wird.
  • Problem: Laufzeitfehler -2147418105 (80010007) erscheint.

    • Lösung: Dies könnte durch einen Fehler im Code oder durch eine nicht korrekt geschlossene Userform verursacht werden. Stelle sicher, dass Du Unload oder Me.Hide korrekt verwendest.

Alternative Methoden

Wenn Du die Userform nicht entladen, sondern nur ausblenden möchtest, kannst Du Me.Hide verwenden:

Private Sub CommandButton1_Click()
    Me.Hide
    UserForm2.Show
End Sub

Beachte, dass Me.Hide die Userform lediglich ausblendet, während Unload Me sie vollständig aus dem Speicher entfernt. Dies kann wichtig sein, um den Arbeitsspeicher zu schonen.


Praktische Beispiele

  1. Beispiel 1: Schließen von UserForm1 und Öffnen von UserForm2:

    Private Sub CommandButton1_Click()
       Unload Me
       UserForm2.Show
    End Sub
  2. Beispiel 2: Verwenden von Me.Hide:

    Private Sub CommandButton1_Click()
       Me.Hide
       UserForm2.Show
    End Sub
  3. Beispiel 3: Entladen aller Userforms:

    Private Sub CloseAllUserForms()
       Unload UserForm1
       Unload UserForm2
    End Sub

Tipps für Profis

  • Verwende Unload immer vor dem Schließen einer Userform, um sicherzustellen, dass der Speicher freigegeben wird.
  • Behalte den Überblick über alle offenen Userforms. Verwende For Each Schleifen, um alle Userforms zu entladen, falls Du mehrere gleichzeitig geöffnet hast.
  • Nutze Application.ScreenUpdating: Setze es auf False, bevor Du Änderungen vornimmst, um flackernde Bildschirme zu vermeiden.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Hide und Unload?
Hide blendet die Userform nur aus, während Unload sie vollständig aus dem Speicher entfernt.

2. Warum funktioniert Unload Me manchmal nicht?
Stelle sicher, dass Du keine weiteren Prozesse oder Funktionen auf der Userform hast, die das Entladen verhindern könnten. Debugge den Code und überprüfe auf eventuelle Abhängigkeiten.

3. Wie kann ich sicherstellen, dass alle Userforms entladen werden?
Verwende eine Schleife, um alle Userforms in einem Modul zu entladen, oder rufe eine separate Subroutine auf, die alle Userforms verwaltet.

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