habe ein Problem bei dem ich Hilfe bräuchte.
Und zwar möchte ich verhindern, dass die Userform geschlossen werden kann, wenn Textbox 7,8 und 9 leer sind.
Vielen Dank schon mal im Voraus!
Lieben Gruß aus Bremen
Bernd
Office 2016 Pro 32bit
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If Len(TextBox1) = 0 Or Len(TextBox2) = 0 Then Cancel = True
End Sub
ObjektNamen bitte anpassenPrivate Sub CommandButton1_Click()
If TextBox8 = "" And TextBox8 = "" And TextBox9 = "" Then Exit Sub
Unload Me
End Sub
So wenn über das "x" geschlossen werden soll
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
If TextBox7 = "" And TextBox8 = "" And TextBox9 = "" Then
Cancel = True
End If
End If
End Sub
Private Sub cmd_schließen_Click()
If TextBox9 = "" Then Exit Sub
Unload Me
frm_Start.Show 'Hier kommt die Fehlermeldung
End Sub
Weiß jemand rat?
Private Sub cmd_schließen_Click()
If TextBox9 = "" Then Exit Sub
Unload Me
frm_Start.Show 'Hier kommt die Fehlermeldung
End Sub
Weiß jemand rat?Um zu verhindern, dass eine Userform geschlossen wird, während bestimmte Textboxen leer sind, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft die Inhalte der Textboxen, bevor die Userform geschlossen wird.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
If Len(TextBox7) = 0 Or Len(TextBox8) = 0 Or Len(TextBox9) = 0 Then
MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbExclamation
Cancel = True
End If
End If
End Sub
1. Laufzeitfehler 13 "Typen unverträglich"
Wenn du beim Schließen der Userform auf diesen Fehler stößt, könnte das daran liegen, dass die Textboxen nicht korrekt verknüpft sind oder dass ein falscher Datentyp verwendet wird. Überprüfe die Verknüpfungen und stelle sicher, dass alle Textboxen die richtigen Werte enthalten.
2. Userform schließt trotzdem
Wenn die Userform trotz leerer Textboxen schließt, überprüfe den Code in der UserForm_QueryClose
-Prozedur. Achte darauf, dass der Cancel
-Parameter korrekt auf True
gesetzt wird, um das Schließen zu verhindern.
Eine andere Möglichkeit, das Schließen der Userform zu steuern, besteht darin, die Schließen-Logik in den Button-Click-Event einzufügen. Hier ist ein Beispiel, wie das geht:
Private Sub CommandButton1_Click()
If Len(TextBox7) = 0 Or Len(TextBox8) = 0 Or Len(TextBox9) = 0 Then
MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbExclamation
Else
Unload Me
End If
End Sub
Hier ist ein vollständiges Beispiel, das beide oben genannten Methoden kombiniert. Du kannst die Userform mit zwei Schaltflächen anpassen: eine für das Schließen über das "x" und eine für einen speziellen Schließen-Button.
Private Sub CommandButton1_Click()
If Len(TextBox7) = 0 Or Len(TextBox8) = 0 Or Len(TextBox9) = 0 Then
MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbExclamation
Else
Unload Me
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
If Len(TextBox7) = 0 Or Len(TextBox8) = 0 Or Len(TextBox9) = 0 Then
MsgBox "Bitte füllen Sie alle erforderlichen Felder aus.", vbExclamation
Cancel = True
End If
End If
End Sub
Len()
-Funktion, um die Länge des Inhalts der Textboxen zu überprüfen. Dies ist besonders hilfreich, um leere Eingaben zu validieren.MsgBox
, um den Benutzern klare Anweisungen zu geben, falls sie ein Feld leer lassen.1. Kann ich die Validierung für zusätzliche Textboxen hinzufügen?
Ja, du kannst einfach weitere Bedingungen mit Or
hinzufügen, um mehr Textboxen in die Validierung einzubeziehen.
2. Warum funktioniert mein Code in Excel 2016 nicht?
Stelle sicher, dass du die richtige Syntax verwendest und dass alle Steuerelemente korrekt benannt sind. Überprüfe auch, ob deine Excel-Version die entsprechenden VBA-Funktionen unterstützt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen