Abfrage: Zahl oder keine Zahl

Timitry

Mitglied
Hi!
Wie kann ich mit vb abfragen, ob in einem feld eine zahl steht?
Das programm soll rechnen, und das kann es halt nicht mit zahlen :D
Deswegen mache ich das mit "Lost Focus", geht doch so oder?

Private Sub gweite_lostfocus
if gweite.text ist keine zahl then
msgbox "Nur Zahlen eingeben!"
End If
End Sub

Brauchte nur den Befehl, der da reinpasst, danke :)
MfG, Tim
 
Code:
Private Sub gweite_lostfocus
if Not IsNumeric(gweite.text) Then
msgbox "Nur Zahlen eingeben!"
gweite.SetFocus
End If
End Sub
 
cool, vielen dank :)
sehr gut auch die idee mit dem zurueckgehen ins feld !
nur... :D
habe mir gerade ueberlegt das es nur positive zahlen sein duerfen, also 0,000000000000001 und darueber...
was muss man dann statt isnumeric angeben?
 
ok, funktioniert soweit alles, nur beschwert er sich jetzt auch wenn nichts im feld ist, und er beschwert sich nicht wenn die zahl negativ ist... gibt es da moeglichkeiten, das entsprechend einzustellen?
 
Zuletzt bearbeitet:
Probiers mal mit dem hier.
Läßt nur Zahlen in einem Textfeld zu.
Code:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr("0123456789,", Chr$(KeyAscii)) = 0 And KeyAscii <> vbKeyBack Then KeyAscii = 0
End Sub
 
Mit der Abs-Funktion kannst du negative Werte in positive wandeln, falls dich das interessiert:
Code:
Test = Abs(-50)
ergibt 50
 
nee, das eher nicht, trotzdem danke :)
habe es jetzt so gelöst:

Code:
Private Sub gweite_lostfocus()
If Not gweite.Text = "" Then
If Not IsNumeric(gweite.Text) Then
gweite.SetFocus
MsgBox "Bitte nur positive Zahlen eingeben!", vbExclamation, "Achtung!"
ElseIf IsNumeric(gweite.Text) Then
If gweite.Text <= 0 Then
MsgBox "Bitte nur positive Zahlen eingeben!", vbExclamation, "Achtung!"
gweite.SetFocus
End If
End If
End If
End Sub


etwas umständlich, aber wunderbar :)
wichtig: set focus sollte auf jedenfall vor der textbox kommen, sonst gibbets ne endlosschleife und man iss nnur noch am ok klicken :D

feel free to use it^^
 
Zurück