UserForm schließen: Verschiedene Methoden in Excel VBA
Schritt-für-Schritt-Anleitung
Um ein UserForm in Excel VBA zu schließen, gibt es verschiedene Methoden. Hier sind die gängigsten:
-
Mit Unload Me
: Diese Methode schließt das UserForm und entfernt alle Eingaben. Sie wird häufig verwendet, wenn die Daten nicht mehr benötigt werden.
Unload Me
-
Mit Me.Hide
: Diese Methode blendet das UserForm nur aus, ohne die Werte zu löschen. Die Eingaben bleiben somit erhalten. Ideal, wenn Du das UserForm später wieder anzeigen möchtest.
Me.Hide
-
Mit Private Sub UserForm_QueryClose
: Diese Methode wird aufgerufen, wenn das UserForm geschlossen wird. Hier kannst Du entscheiden, ob Du Werte speichern möchtest, bevor das UserForm geschlossen wird.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControl Then
' Hier Werte speichern
' Beispiel: UF_Werte_Speichern
End If
End Sub
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du die Daten in einem Tabellenblatt speichern möchtest, bevor Du das UserForm schließt, kannst Du folgenden Code verwenden:
Private Sub CommandButton1_Click()
' Werte speichern
Sheets("Sicherung").Range("A1").Value = TextBox1.Value
Sheets("Sicherung").Range("A2").Value = TextBox2.Value
' UserForm ausblenden
Me.Hide
End Sub
Diese Methode verwendet die CommandButton1_Click
-Ereignisprozedur, um die Werte zu speichern und das UserForm zu schließen.
Praktische Beispiele
Hier ist ein einfaches Beispiel für ein UserForm mit zwei Textboxen und einem Button:
Private Sub UserForm_Activate()
' Werte bei Aktivierung des UserForms aus Blatt "Sicherung" einlesen
With Sheets("Sicherung")
TextBox1.Value = .Range("A1").Value
TextBox2.Value = .Range("A2").Value
End With
End Sub
Private Sub CommandButton1_Click()
' Werte speichern und UserForm schließen
Sheets("Sicherung").Range("A1").Value = TextBox1.Value
Sheets("Sicherung").Range("A2").Value = TextBox2.Value
Me.Hide
End Sub
Tipps für Profis
- Daten zwischen UserForms speichern: Du kannst Public Variablen verwenden, um Daten zwischen verschiedenen UserForms zu teilen.
- Benutzerdefinierte Schließen-Methoden: Erstelle Deine eigenen Funktionen, um das Schließen des UserForms zu steuern, z.B. durch das Speichern von Werten in verschiedenen Tabellenblättern.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass meine Eingaben bei Unload Me
nicht verloren gehen?
Um die Eingaben nicht zu verlieren, solltest Du die Methode Me.Hide
verwenden oder vorher die Werte in einem Tabellenblatt speichern.
2. Gibt es eine Möglichkeit, die Eingaben dauerhaft zu speichern?
Ja, Du kannst die Werte der Textboxen in einem Tabellenblatt speichern, wie im Abschnitt "Praktische Beispiele" beschrieben.
3. Was ist der Unterschied zwischen Me.Hide
und Unload Me
?
Me.Hide
blendet das UserForm nur aus und behält die Eingaben, während Unload Me
das UserForm vollständig schließt und alle Eingaben löscht.