Hallo,
leider habe ich bei Mr. Google nicht so richtig was dazu gefunden…
ich habe eine Eingabeoberfläche (Word 2007) in welcher die Nutzer ein Aktenzeichen eingeben sollen. Dieses hat das Format xxx/xxxx/xxx/xxx bzw. xxx/9xx/xxxx/xxx (wenn also dort ne „9“ ist ist der Schrägstrich eins „früher“ als bei der anderen Version).
Nun möchte ich dem Nutzer die Eingabe erleichtern in dem er nicht die Schrägstriche mit eingeben braucht sondern das Programm ergänzt diese automatisch bei Eintragung von Zahlen. Nun habe ich bereits Code geschrieben (von dem ich denke das er recht kompliziert ist *g*) welcher dies mehr oder minder auch tut. Jedoch wenn ich mehrfach die „Rücktaste“ drücke (der Nutzer muss ja auch mal was ändern können und dann soll er die Schrägstriche ja nicht wieder anzeigen wenn er es gerade gelöscht hat) dann hängt sich irgendwie das Programm auf. Woran es liegen könnte: keine Ahnung. Wer kann mir helfen?
Hier der Code (Variablen habe ich noch nicht deklariert); das „txtAZ“ das Textfeld-Steuerelement ist dürfte den meisten klar sein :
Private Sub txtAZ\_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'nur Zahlen erlaubt
If KeyAscii 57 Then KeyAscii = 0
End Sub
Private Sub txtAZ\_Change()
T = txtAZ.Text
'löschen aller Schrägstriche
If InStr(1, T, "/") 0 Then
Anfang = 1
Do
Schräg = InStr(Anfang, T, "/")
Länge = Len(T)
T = IIf(Schräg Länge, Left(T, Schräg - 1) & Right(T, Länge - Schräg), T)
Loop Until InStr(1, T, "/") = 0
End If
Zähler = Array(3, 8, 12)
For I = 1 To 3
x = IIf(Mid(T, 5, 1) = "9" And I = 2, 2, 1)
If Len(T) \> Zähler(I - 1) - x + 1 Then
t1 = Left(T, Zähler(I - 1) - x + 1)
T2 = Right(T, Len(T) - (Zähler(I - 1) - x + 1))
T = t1 & "/" & T2
Else
Exit For
End If
Next
txtAZ.Text = T
End Sub
LG Tobi@s