textboxeingabe

themadman

Mitglied
servus leute,

ich habe folgendes problem... ich habe eine textbox, in die ich nur werte von 0 - 15 und einen doppelpunkt eingeben will.

doch wie stelle ich das an

es soll in der textbox dann so aussehen:
8:12:5:14:15

mein problem besteht darin, dass ich nicht weiß, was ich jetzt in das Change Event der textbox schreiben soll.

Hat jemand eine Idee wäre sehr dankbar.

MfG
Mike
 
Versuch´s mal hiermit:
Code:
Private Sub Form_Load()
Text1 = ""
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
 If InStr("0123456789:", Chr$(KeyAscii)) = 0 And KeyAscii <> vbKeyBack Then KeyAscii = 0
End Sub

Private Sub Text1_LostFocus()
Dim Text() As String
Dim N As Long

Text = Split(Text1, ":")

For N = 0 To UBound(Text)
 If CLng(Text(N)) > 15 Then
  MsgBox "Falsche Eingabe"
  Text1.SetFocus
  Exit For
 End If
Next
End Sub
 
Code:
'Variablen dimensionieren
Dim strToProof As String

'Variable als letzte Eingabe nehmen
strToProof = Right(Textbox1.Text,1)

'Prüfen des String
'Numerischer Wert wird akzeptiert
If Not IsNumeric strToProof Then
'Ist es kein numerischer Wert, wird auf ':' geprüft
 If strToProof = ":" Then
 'und die Sub verlassen
  Exit Sub
 'ist der Wert numerisch ?
 ElseIf IsNumeric strToProof Then
 'dann können wir die Sub auch verlassen
  Exit Sub
 'ist es kein ':' und kein numerischer Wert, weisen wir den User darauf hin
 ElseIf Not IsNumeric strToProof Then
  MsgBox "Only ':' and numeric values allowed", vbInformation, "Wrong input"
  'und löschen den letzten Eintrag
  Textbox1.Text = Left(Textbox1.Text,Len(Textbox1.Text)-1)
  End If
End If

Ungetestet, sollte aber gehen.
 
Danke für eure Hilfe, hab mich mal mit dem ersten Lösungsweg auseinander gesetzt und bissl ausgearbeitet, nun geht es wunderbar :))
danke
 
Oh, seh ich jetzt erst : bei mir hat die Eingabe etwas gedauert, als ich anfing zu schreiben war noch keine Antwort vorhanden.
 
Zurück