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

Forumthread: Textbox in Userform bei Eingabe Prüfen

Textbox in Userform bei Eingabe Prüfen
19.11.2019 10:22:15
Rauti
Hallo,
Ich habe eine UserForm in dem sich mehrere Textboxen ect. für die Dateneingabe befinden. Die Textbox4 möchte ich prüfen, ob der Wert zwischen Min und Max liegt und sollte es nicht der Fall sein für Min ein Hinweis anzeigen und für Max einen anderen Hinweis. Da sich der Min Wert verändern kann soll der Code den Wert aus einer Tabellen Zelle auslesen.
Den folgenden Code habe ich geschrieben und er macht es auch ABER das Hinweisfester kommt nicht, wenn ich mit Tab aus der Textbox zur nächsten springe bzw. das nächste ist ein Optionsbutton. Gibt es eine andere Möglichkeit für den Code?
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Verhindern die Eingabe von Buchstaben
Select Case KeyAscii
' 0 - 9
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox4_exit(ByVal Cancel As MSForms.ReturnBoolean)
' Überprüfen Min und Max Werte
Dim Min As Integer
Min = Worksheets("System").Cells(8, 4).Value
If TextBox4.Value > "" And CInt(TextBox4.Value) > 200 Then
MsgBox ("Der Wert muss unter 200 liegen!")
Else
If CInt(TextBox4.Value) 

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox in Userform bei Eingabe Prüfen
19.11.2019 10:28:47
Rauti
Gerade fällt mir auf das das Hinweisfenster zum Min. doch da ist, aber hinter dem UserForm ist. Bei den beiden davor befindlichen Textboxen funktioniert der Code und die Hinweisfenster werden auch vor dem UserForm geöffnet.
AW: Textbox in Userform bei Eingabe Prüfen
19.11.2019 10:51:40
fcs
Hallo rauli,
die Prüfung, ob die Textbox leer ist (keine Eingabe) muss separat erfolgen,
CInt erforder eine Ziffernfolge/Zahl als Parameter.
Bei Text/Leerstring gibt es einen Fehler.
LG
Franz
Private Sub aaTextBox4_exit(ByVal Cancel As MSForms.ReturnBoolean)
' Überprüfen Min und Max Werte
Dim Min As Integer
Min = Worksheets("System").Cells(8, 4).Value
If TextBox4.Value = "" Then
'keine Eingabe erfolgt
'        MsgBox "Bitte Zahl eingeben"
'        Cancel = True 'nur wenn Eingabe eines Wertes erzwungen werden soll
Else
If CInt(TextBox4.Value) > 200 Then
MsgBox ("Der Wert muss unter 200 liegen!")
Else
If CInt(TextBox4.Value) 

Anzeige
AW: Textbox in Userform bei Eingabe Prüfen
20.11.2019 01:19:30
fcs
Hallo rauti,
leider funktioniert dein Link wegen irgentwelcher Sicherheitsrichtlinien nicht.
Benutze den File-Upöoad hier im Forum.
LG
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Werte in einer UserForm Textbox prüfen


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne Excel und erstelle eine neue UserForm. Füge eine TextBox (z.B. TextBox4) hinzu, in die der Benutzer Werte eingeben kann.

  2. Code zur Eingabeverprüfung hinzufügen: Um sicherzustellen, dass die Eingabe in der TextBox zwischen einem minimalen und maximalen Wert liegt, füge den folgenden VBA-Code hinzu:

    Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       Dim Min As Integer
       Dim Max As Integer
       Min = Worksheets("System").Cells(8, 4).Value ' Min-Wert aus Zelle auslesen
       Max = 200 ' Max-Wert festlegen
    
       If TextBox4.Value = "" Then
           MsgBox "Bitte Zahl eingeben"
           Cancel = True
       ElseIf CInt(TextBox4.Value) < Min Then
           MsgBox "Der Wert muss größer oder gleich " & Min & " sein!"
           Cancel = True
       ElseIf CInt(TextBox4.Value) > Max Then
           MsgBox "Der Wert muss unter " & Max & " liegen!"
           Cancel = True
       End If
    End Sub
  3. Eingabetyp für die TextBox festlegen: Um sicherzustellen, dass nur Zahlen eingegeben werden, kannst du den folgenden Code in die KeyPress-Ereignisprozedur der TextBox einfügen:

    Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       Select Case KeyAscii
           Case 48 To 57 ' Ziffern 0-9
           Case Else
               KeyAscii = 0 ' Eingabe verhindern
       End Select
    End Sub
  4. Testen: Führe die UserForm aus und teste die Eingabe in der TextBox. Achte darauf, dass die Meldungen erscheinen, wenn die Eingabe nicht den Vorgaben entspricht.


Häufige Fehler und Lösungen

  • Keine Meldungen erscheinen: Stelle sicher, dass du das Exit-Ereignis korrekt verwendest und dass die TextBox den Fokus verliert (z.B. durch Drücken der Tab-Taste).

  • Hinweisfenster hinter der UserForm: Wenn Meldungen hinter der UserForm erscheinen, kann es helfen, die Position der UserForm zu überprüfen oder den MsgBox-Befehl im Vordergrund auszuführen.

  • Eingabefehler: Achte darauf, dass du nicht versuchst, einen nicht-numerischen Wert in CInt zu konvertieren. Füge eine Prüfung ein, um sicherzustellen, dass die TextBox nicht leer ist, bevor du die Konvertierung vornimmst.


Alternative Methoden

  • Gültigkeitsprüfung über Datenüberprüfung: Du kannst eine Datenüberprüfung in Excel verwenden, um sicherzustellen, dass nur bestimmte Werte in die TextBox eingegeben werden. Dies kann durch die Verwendung von Dropdown-Listen oder numerischen Einschränkungen geschehen.

  • Verwendung von ComboBox: Statt einer TextBox könntest du auch eine ComboBox verwenden, die vordefinierte Werte bietet. Dies reduziert das Risiko von Eingabefehlern.


Praktische Beispiele

  • Min-Max-Prüfung für Altersangaben: Verwende die TextBox, um das Alter eines Benutzers einzugeben, und prüfe, ob es zwischen 0 und 120 liegt.

  • Eingabe von Preisen: Setze eine TextBox ein, um Preise einzugeben, und stelle sicher, dass der Wert positiv ist und maximal einen festgelegten Betrag nicht überschreitet.


Tipps für Profis

  • Erweiterte Fehlerbehandlung: Verwende Try-Catch-Strukturen, um Fehler zu behandeln und benutzerfreundliche Fehlermeldungen anzuzeigen.

  • Dynamische Min-Max-Werte: Erlaube, dass die Min-Max-Werte dynamisch aus einer anderen Quelle (z.B. einer Datenbank) ausgelesen werden, um flexiblere Anwendungen zu erstellen.

  • Benutzerfreundlichkeit erhöhen: Denke an visuelle Hinweise, wie z.B. das Einfärben der TextBox, wenn der eingegebene Wert außerhalb des erlaubten Bereichs liegt.


FAQ: Häufige Fragen

1. Wie kann ich die Größe der UserForm anpassen?
Du kannst die Größe der UserForm im Eigenschaftenfenster der UserForm ändern, indem du die Breite und Höhe anpasst.

2. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe die Syntax des Codes, stelle sicher, dass die Namen der Steuerelemente korrekt sind und dass die UserForm im richtigen Kontext ausgeführt wird.

3. Wie kann ich mehrere TextBoxen gleichzeitig prüfen?
Du kannst eine separate Exit-Prozedur für jede TextBox erstellen oder eine gemeinsame Prozedur, die alle TextBoxen prüft, indem du die Werte in einer Schleife durchgehst.

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