title image


Smiley Re: Nur Zahlen zulassen?
Hallo,



wie Ahlers schon schrieb kannst Du mit



If IsNumeric(Text1.Text) Then

'Anweisung

End If



überprüfen, ob es sich um numerische Eingaben handelt. Ich meine aber, dass es besser ist, gar nicht erst andere Eingaben zuzulassen. Der User ist ziemlich genervt wenn er NACH einem Eingabefehler feststellt, dass es falsch war. Die folgende Sub, in einem allgemeinen Modul untergebracht, kannst Du für alle Textboxen verwenden, die nur Zahlen zulassen sollen.





'Nur Zahlen, die Backtaste, Punkt, Komma und "-"(Minus) werden

'anerkannt. Punkt und Komma nur einmal. "-" nur am Anfang.

'Hierbei wird bei eventueller Markierung der Textbox ein Komma/"-"

'zugelassen, obwohl dieses evtl. bereits vorhanden ist. Sonst wäre

'die TextBox bei Selektierung für diese Zeichen blockiert.



Sub NurZahl(Textfeld As TextBox, KeyAscii As Integer)

 Select Case KeyAscii 'Übergebener Asciicode

'----------------------------------------------------------------

  Case 8, 48 To 57 'Backtaste, Tasten 0 bis 9

   KeyAscii = KeyAscii

'----------------------------------------------------------------

  Case 45 'Taste "-"

   If Textfeld.SelStart = 0 Then 'Nur wenn Cursor am Anfang steht

     If Left(Textfeld.Text, 1) = "-" And Textfeld.SelLength = Len(Textfeld.Text) _

     Then 'Minus-Zeichen bereits da, aber Text ist markiert

      KeyAscii = KeyAscii '- zulassen

     ElseIf Left(Textfeld.Text, 1) = "-" Then  'Minus-Zeichen ist bereits da

      KeyAscii = 0 '- nicht zulassen

     End If

   Else 'Wenn Cursor nicht am Anfang steht

    KeyAscii = 0 '- nicht zulassen

   End If

'-----------------------------------------------------------------

  Case 44, 46 'Tasten Komma, Punkt

   Select Case InStr(1, Textfeld.Text, ",")

    Case Is > 0 'Wenn Komma bereits da ist, kann kein

                'zweites eingegeben werden(KeyAscii=0)

                'es sei denn, der Text ist selektiert.

     If Textfeld.SelLength = Len(Textfeld.Text) Then

      KeyAscii = KeyAscii

     Else

      KeyAscii = 0

     End If

    Case Else 'Wenn nicht wird Punkt zu Komma gemacht.

     KeyAscii = 44

   End Select

'-----------------------------------------------------------------

  Case Else  'Alle anderen Zeichen

   KeyAscii = 0 '- nicht zulassen

 End Select

End Sub



'Aufruf der Sub im KeyPress-Event der Textboxen, die nur Zahlen

'zulassen sollen:

Private Sub txtPreis_KeyPress(KeyAscii As Integer)

   NurZahl txtPreis, KeyAscii

End Sub



Code eingefügt mit Syntaxhighlighter 2.5




Gruß manyki

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: