VBA: IsNumeric gibt wahr zurück?

Registriert
März 2018
Beiträge
161
Wenn der Textbox.Text, der geprüft werden soll, "a" ist? Das verstehe ich nicht.
Mono - 01822.jpg
 
Das ist natürlich mitten in der Testphase.
Ich will eine Zeitdauer eingeben im Format m:ss.000 und alles außer Ziffern bei der Eingabe ausschließen.
Private Sub txtMinute_Exit(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "box Exit"
MsgBox IsNumeric(TextBox1.Text)
If Not IsNumeric(TextBox1.Text) Then
txtMinute.Text = "-"
txtMinute.SetFocus
MsgBox "Es sind nur numerische Werte erlaubt!"
End If
[Edit]: Habs schon. Danke. Der Text kam aus einer andere Box als txtMinute.

End Sub
 
So als kleiner Tipp für die Zukunft, für Quelltext gibt es hier einen extra Tag, dann sieht das lesbar aus. Vor allem bei längerem Quelltext unentbehrlich ;)
 
  • Gefällt mir
Reaktionen: Hayda Ministral, Gyro-Gearloose, G-Red und eine weitere Person
Moin,

ich bin zwar noch neu hier, aber ich löse die Beschneidung auf Zahlen immer über das KeyPress Event der TextBox.
Da bekommt der User keine extra MsgBox und man kann den Schabernack der User auch eingrenzen.
Und man kann sich durch die vorherige Begrenzung, die Überprüfung sparen. User sind echt kreativ was die Eingabe in Felder angeht


Code:
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
  Case 48 To 57 'hier sind die Zahlen als Ascii Zeichen hinterlegt (0 - 9)
  Case Else: KeyAscii = 0 'alle anderen Zeichen werden geblockt
End Select
End Sub

LG
Felix
 
  • Gefällt mir
Reaktionen: Gyro-Gearloose und Scientist
@Gyro-Gearloose Mehrzeilig ist es "Code". Das hier ist inline Code
Kannst du auch einfach ausprobieren. Tags einbauen und auf "Vorschau" klicken :)
 
  • Gefällt mir
Reaktionen: Zuse1, Hayda Ministral und Gyro-Gearloose
@FelixP : Das funktioniert nicht. Wenn ich "a" drücke, steht ungerührt "a" in der Textbox. Die Msgbox wir aber angezeigt.
Code:
[CODE]Private Sub txtMinute_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)



Select Case KeyAscii

  Case 48 To 57 'hier sind die Zahlen als Ascii Zeichen hinterlegt (0 - 9)

  Case Else

  MsgBox "halt"

    KeyAscii = 0 'alle anderen Zeichen werden geblockt

    txtMinute.Value = ""

End Select

End Sub

[/CODE
 
danke @BAGZZlash : kein Tippfehler. Falsche Wahl aus der Drop-down-Liste😈
das liegt an dem 4K-Bildschirn und daran dass man die Font-Größe im VBA -Editor bei 4K nicht höher als 9 Punkt einstellen kann. Ist MS seit Jahren bekannt....
 
Zuletzt bearbeitet:
Zurück
Oben