In Textbox nur numerische Werte zulassen
Um in einer Textbox nur numerische Werte zuzulassen, gibt es verschiedene Wege. Wir stellen Ihnen hier drei davon vor, natürlich in VBA 🙂 :
Sub TextBox1_Change() If Not IsNumeric(TextBox1) Then MsgBox "Nur numerische Eingaben erlaubt!", _ vbInformation + vbOKOnly, "Hinweis" TextBox1 = "" & Left(TextBox1, Len(TextBox1) - 1) End If End Sub
Das ist kurz und einfach. Prinzipiell wird dort nach jedem eingegebenen Zeichen überprüft, ob der gesamte Text in der Textbox nur aus Ziffern und numerischen Zeichen besteht. Gehört ein eingegebenes Zeichen nicht dazu, wird es sofort gelöscht und eine MsgBox weist darauf hin.
Bei mehrfachen und andauernden Fehleingaben kann das natürlich nerven (das soll es eigentlich auch). Darum hier eine Möglichkeit, die Textbox erst nach dem Abschluss der Eingabe zu prüfen:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Not IsNumeric(TextBox1) Then Cancel = True MsgBox "Es sind nur numerische Werte erlaubt!", _ vbInformation, "Hinweis" End If End Sub
Die dritte Möglichkeit basiert darauf, dass die Tastatureingaben direkt abgefangen werden. Der Effekt ist praktisch wie bei der ersten vorgestellten Prozedur, allerdings wird hier nicht erst in die Textbox geschrieben und bei Fehleingaben das falsche Zeichen wieder gelöscht. In der hier vorgestellten Variante werden ausschließlich nur Ziffern zugelassen, also auch kein Komma, Punkt, Minus, Klammern:
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 Case Else: KeyAscii = 0 MsgBox "Es sind nur Ziffern erlaubt!", _ vbInformation, "Hinweis" End Select End Sub
Zwischen den Code-Zeilen 3 und Zeile 4 fehlt nichts! Es soll einfach nichts geschehen, da die Eingaben einer Ziffer OK sind. Möchten Sie noch die Eingabe eines Kommas, Punktes und das Plus- und das Minuszeichen erlauben, dann sollte die dritte Zeile des Codes so aussehen:
Case 48 To 57, 43 To 46
Klammern und vielleicht auch noch Währungsbezeichnungen können auf die gleiche Art und Weise hinzugefügt werden. Allerdings sind in jedem Fall so eigenartige Konstrukte wie beispielsweise 7,4–2 durchaus möglich. Hier bieten sich wiederum die ersten beiden Möglichkeiten an. – Die drei Module können Sie an dieser Stelle in gepackter Form, alle in einer einzigen Textdatei herunterladen. Sie sollten natürlich nur 1 dieser Prozeduren in einer Form einsetzen.
[NachObenLetzte Verweis=„CS: Nur Zahleneingabe”]