AW: Fast Okay
12.11.2003 19:55:41
Nepumuk
Hallo Hartmut,
das war wohl nix. Neuer Versuch:
Option Explicit
Dim bolLoeschen As Boolean
Private Sub TextBox1_Change()
If Not bolLoeschen Then If Len(TextBox1) = 2 Or Len(TextBox1) = 10 Then TextBox1 = TextBox1 & "." 'wenn Backspace dann keine Reaktion
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 And (Len(TextBox1) = 3 Or Len(TextBox1) = 11) Then 'wenn Backspack vor Punkt
bolLoeschen = True 'Punkterzeugung in Change - Ereignis unterdrücken
TextBox1 = Left(TextBox1, Len(TextBox1) - 1) 'Punkt löschen
bolLoeschen = False ' Change - Ereignis wieder zulassen
End If 'wenn die Prozedur verlassen wird, wird der Backspace ausgeführt
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44: KeyAscii = 46 'Komma in Punkt umwandeln
Case 46: 'Punkt - keine Aktion
Case 48 To 57 'Ziffern von 0 bis 9 - keine Aktion
Case Else: KeyAscii = 0 'alle anderen Zeichen unterdrücken
End Select
If KeyAscii = 46 And Len(TextBox1) > 3 And Len(TextBox1) < 11 Then _
TextBox1 = Left(TextBox1, 3) & String(10 - Len(TextBox1), "0") _
& Mid(TextBox1, 4) 'wenn Punkt zwichen 3. und 10. Stelle dann Vornullen erzeugen
If KeyAscii = 46 Then KeyAscii = 0 'Punkt wieder unterdrücken
End Sub
Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk