ich habe in einer UF einige Textfelder. Nun möchte ich das in einem Textfeld nur eine 10 stellige Zahl eingetragen werden kann. Zum Thema Zahlen eingabe habe ich folgenden Code genutzt:
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(","), Asc(".")
If InStr(TextBox2, ".") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
Case Asc(vbBack)
Case Asc("-")
If Len(TextBox1) = 0 Then
If InStr(TextBox2, "-") <> 0 Then
Else
KeyAscii = Asc("-")
End If
Else
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Zur Längenbegraenzung habe ich bei dem Druck auf einen Button folgenden If Code genutzt. Doch klappt es nicht, auch wenn ich eine 10 stellige Zahl eingebe bekomme ich die MsgBox angezeigt. Was hab ich falsch gemacht?
If TextBox2.TextLength 10 Then
MsgBox ("Please fill in a valid customer number")
Exit Sub
End If
Die zweite Frage dazu ist, wie kann ich eine Prozedur beenden ohne das die nächste Textbox aktiviert wird? Ich habe diesen Code genutzt um auf eine 10 stellige Eingabe zu bestehen, das klappt auch, aber wenn ich die MsgBox bestätige, dann springt er zur nächsten Textbox, doch er soll in dieser bleiben bis die Eingabe richtig ist.
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Length <> 10 Then
MsgBox ("Number to long or to short")
End If
End Sub
Danke im Voraus für Eure Hilfe!!
Markus