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

Forumthread: Alle Userforms schließen

Alle Userforms schließen
Tim
Hallo Zusammen,
folgendes Problem: Ich habe eine Makro, in dessen Verlauf ich mehrere Userforms öffne. Leider muss ich hierbei einige userforms verstecken (userform.hide) und nicht schließen (unload unload), da ich die Informationen noch brauche, bzw. dahin zurückkehre.
Nun will ich den ganzen Vorgang Abbrechen können. d.h. alles userforms schließen und zum das Programm von Start beginnen. Mein Ansatz:

Sub AllesAbbrechen()
Dim i As Integer
Dim j As Integer
For i = UserForms.Count - 1 To 0 Step -1
Unload (UserForms(i))
Next
XStart.Show
End Sub

Leider funktioniert das nicht. Jemand eine Idee oder einen anderen Ansatz?
Danke & Gruß Tim
Anzeige

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

Betreff
Benutzer
Anzeige
Alle Userforms per VBA schließen
12.08.2011 18:57:55
NoNet
Hallo Tim,
folgender Code (als Button in UserForm2) funktioniert bei mir einwandfrei - es werden alle UFs geschlossen :
Private Sub CommandButton1_Click()
UserForm1.Hide 'erste UF verstecken
Dim lngUF As Long
For lngUF = UserForms.Count To 1 Step -1
'MsgBox UserForms(v - 1).Name,,"UserForm wird geschlossen:"
Unload UserForms(lngUF - 1)
Next
End Sub

Welcher Fehler erscheint bei Dir denn ?
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

Anzeige
AW: Alle Userforms per VBA schließen
13.08.2011 16:12:50
Tim
Hallo NoNet,
Danke für die Antwort, hab das Problem jetzt gelöst bekommen. Wenn ich zuerst alle Userforms vesretecke (.hide ) und dann beende, dann klappt es.
Gruß Tim
;
Anzeige
Anzeige

Infobox / Tutorial

Alle Userforms in Excel schließen


Schritt-für-Schritt-Anleitung

Um alle Userforms in Excel zu schließen, kannst du den folgenden VBA-Code nutzen. Dieser Code durchläuft alle offenen Userforms und schließt sie, sodass du den Excel-Vorgang abbrechen und neu starten kannst:

Sub AllesAbbrechen()
    Dim i As Integer
    For i = UserForms.Count - 1 To 0 Step -1
        Unload UserForms(i) ' Schließt die Userform
    Next i
    XStart.Show ' Zeigt die Start-Userform an
End Sub

Um diesen Code zu verwenden, füge ihn in ein neues Modul in deinem VBA-Editor ein. Du kannst die XStart.Show-Zeile anpassen, um die gewünschte Userform zu öffnen.


Häufige Fehler und Lösungen

Ein häufiger Fehler tritt auf, wenn du versuchst, eine Userform zu schließen, die nicht mehr geöffnet ist. Achte darauf, dass du Userforms nicht mit .Hide versteckst, bevor du versuchst, sie mit Unload zu schließen.

Wenn der folgende Code nicht funktioniert, stelle sicher, dass du den richtigen Index verwendest:

For lngUF = UserForms.Count To 1 Step -1
    Unload UserForms(lngUF - 1)
Next

Verwende stattdessen:

For lngUF = UserForms.Count - 1 To 0 Step -1
    Unload UserForms(lngUF)
Next

Alternative Methoden

Eine alternative Methode zum Schließen von Userforms ist die Verwendung der Hide-Methode, gefolgt von Unload. Dies kann in bestimmten Szenarien nützlich sein, wenn du die Informationen in den Userforms zwischenzeitlich benötigst:

UserForm1.Hide ' Versteckt die Userform
' Weitere Prozesse hier
Unload UserForm1 ' Schließt die Userform

Vergiss nicht, dass Userform.Hide die Userform nicht schließt, sondern nur versteckt. Dies kann nützlich sein, wenn du die Daten später wieder benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Userforms in verschiedenen Szenarien schließen kannst:

  1. Alle Userforms gleichzeitig schließen:
Sub SchließeAlleUserforms()
    Dim i As Integer
    For i = UserForms.Count - 1 To 0 Step -1
        Unload UserForms(i)
    Next i
End Sub
  1. Einzelne Userform schließen und neu starten:
Sub SchließeUndStarteNeu()
    Unload UserForm1
    XStart.Show
End Sub

Tipps für Profis

  • Nutze die UserForm.Hide-Methode, wenn du eine Userform temporär verstecken möchtest, um später darauf zurückzugreifen.
  • Überlege, ob du ein Ereignis wie UserForm_QueryClose nutzen möchtest, um zusätzliche Logik beim Schließen der Userforms zu integrieren.
  • Halte deine Userform-Objekte organisiert, um die Übersichtlichkeit zu bewahren und mögliche Fehler beim Schließen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich alle Userforms auf einmal schließen?
Du kannst alle Userforms mit einer Schleife schließen, wie im Schritt-für-Schritt-Abschnitt beschrieben.

2. Was ist der Unterschied zwischen .Hide und Unload?
.Hide versteckt die Userform, während Unload sie vollständig aus dem Speicher entfernt. Wenn du die Userform später noch benötigst, solltest du .Hide verwenden.

3. Funktioniert dieser Code in älteren Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt 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