Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Textbox leer UF schließen verhindern

Forumthread: VBA: Textbox leer UF schließen verhindern

VBA: Textbox leer UF schließen verhindern
21.11.2017 15:04:25
Bernd
Hallo zusammen,
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
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Cancel = True
21.11.2017 15:16:55
Matthias
Hallo
Nach diesem Schema:
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 anpassen
Gruß Matthias
AW: VBA: Textbox leer UF schließen verhindern
21.11.2017 15:28:46
Peter
Hallo Bernd,
So wenn über einen Button geschlossen werden soll.
Private 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

Viele Grüße
Peter (hpo)
Anzeige
AW: Laufzeitfehler 13 "Typen unverträglich"
21.11.2017 18:30:25
Bernd
Hallo zusammen,
hab ein Problem beim schließen der Userform über Button. Die TextBox9 ist aber gefüllt. Und zwar kommt Fehlermeldung Laufzeitfehler 13 "Typen unverträglich"
Hier mein Code:

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?
Lieben Gruß aus Bremen
Bernd
Anzeige
Sorry doppelt !!!
21.11.2017 18:56:13
Bernd
AW: Laufzeitfehler 13 "Typen unverträglich"
21.11.2017 18:57:12
Daniel
Hi
dann tritt der Fehler beim Starten der Userform frm_Start.Show auf.
geh mal im VBA-Edior ins Menü EXTRAS - OPTIONEN - ALLGEMEIN und wähle bei UNTERBRECHEN BEI FEHLERN die Option "in Klassenmodul" aus.
Führe dann die Aktion nochmal aus. An welcher stelle tritt jetzt der Fehler auf?
Gruß Daniel
Anzeige
AW: Laufzeitfehler 13 "Typen unverträglich"
21.11.2017 19:24:02
Bernd
Hallo Daniel,
hab durch deine Hilfe den Fehler gefunden. Er trat in einer anderen UF auf zwei TextBoxen waren mit falschen Zellen verknüpft.
Danke dir für deine schnelle Hilfe.
Lieben Gruß aus Bremen
Bernd
AW: Laufzeitfehler 13 "Typen unverträglich"
21.11.2017 18:54:31
Bernd
Hallo zusammen,
hab ein Problem beim schließen der Userform über Button. Die TextBox9 ist aber gefüllt. Und zwar kommt Fehlermeldung Laufzeitfehler 13 "Typen unverträglich"
Hier mein Code:

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?
Lieben Gruß aus Bremen
Bernd
Anzeige
AW: VBA: Textbox leer UF schließen verhindern
21.11.2017 15:59:46
Bernd
Hallo Ihr Beiden,
beide Vorschläge haben gepasst. Danke für die schnelle Hilfe!!!
Lieben Gruß aus Bremen
Bernd
;
Anzeige
Anzeige

Infobox / Tutorial

Userform schließen verhindern: Textboxen validieren in VBA


Schritt-für-Schritt-Anleitung

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.

  1. Öffne den VBA-Editor (ALT + F11) in Excel.
  2. Wähle die Userform aus, die du bearbeiten möchtest.
  3. Füge den folgenden Code im Codefenster der Userform ein:
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. Speichere das Projekt und teste die Userform.

Häufige Fehler und Lösungen

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.


Alternative Methoden

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

Praktische Beispiele

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

Tipps für Profis

  • Verwende Len()-Funktion, um die Länge des Inhalts der Textboxen zu überprüfen. Dies ist besonders hilfreich, um leere Eingaben zu validieren.
  • Nutze MsgBox, um den Benutzern klare Anweisungen zu geben, falls sie ein Feld leer lassen.
  • Halte den Code übersichtlich und gut strukturiert, um die Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

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.

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