Nur Zahlen zulassen

In Textbox nur numerische Werte zulassen

Um in ein­er Textbox nur numerische Werte zuzu­lassen, gibt es ver­schiedene Wege. Wir stellen Ihnen hier drei davon vor, natür­lich 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 ein­fach. Prinzip­iell wird dort nach jedem eingegebe­nen Zeichen über­prüft, ob der gesamte Text in der Textbox nur aus Zif­fern und numerischen Zeichen beste­ht. Gehört ein eingegebenes Zeichen nicht dazu, wird es sofort gelöscht und eine Msg­Box weist darauf hin.

Bei mehrfachen und andauern­den Fehleingaben kann das natür­lich ner­ven (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 Tas­tatureingaben direkt abge­fan­gen wer­den. Der Effekt ist prak­tisch wie bei der ersten vorgestell­ten Proze­dur, allerd­ings wird hier nicht erst in die Textbox geschrieben und bei Fehleingaben das falsche Zeichen wieder gelöscht. In der hier vorgestell­ten Vari­ante wer­den auss­chließlich nur Zif­fern zuge­lassen, also auch kein Kom­ma, Punkt, Minus, Klam­mern:

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

Zwis­chen den Code-Zeilen 3 und Zeile 4 fehlt nichts! Es soll ein­fach nichts geschehen, da die Eingaben ein­er Zif­fer OK sind. Möcht­en Sie noch die Eingabe eines Kom­mas, Punk­tes und das Plus- und das Minusze­ichen erlauben, dann sollte die dritte Zeile des Codes so ausse­hen:

Case 48 To 57, 43 To 46

Klam­mern und vielle­icht auch noch Währungs­beze­ich­nun­gen kön­nen auf die gle­iche Art und Weise hinzuge­fügt wer­den. Allerd­ings sind in jedem Fall so eige­nar­tige Kon­struk­te wie beispiel­sweise 7,4–2 dur­chaus möglich. Hier bieten sich wiederum die ersten bei­den Möglichkeit­en an. – Die drei Mod­ule kön­nen Sie an dieser Stelle in gepack­ter Form, alle in ein­er einzi­gen Text­datei herun­ter­laden. Sie soll­ten natür­lich nur 1 dieser Proze­duren in ein­er Form ein­set­zen.

[NachOben­Let­zte Verweis=„CS: Nur Zahleneingabe”]

 

Dieser Beitrag wurde unter Code-Schnipsel, Rechnen & Zahlen, Tipps und Tricks, Verschiedenes abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.