AW: Inhalt der Textbox in Datum umwandeln
23.05.2007 16:47:19
Florian
Hallo!
Habe nun folgenden Code gefunden und abgeändert!
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
' TMMJJ , T.MM.JJ, TTMMJJ, TT.MM.JJ, TTMMJJJJ, TT.MM.JJJJ, TMMJJJJ, T.MM.JJJJ als Eingabe
' Monat und Jahr müssen IMMER mindestens zweistellig angegeben werden.
Dim sDatum As String
Dim sEingabe As String
Dim sJahr As String
Dim sMonat As String
Dim sTag As String
If Not Me.TextBox1.Value = "" Then ' TextBox ist nicht leer ?
Application.EnableEvents = False
On Error GoTo Fehler
sEingabe = CStr(CLng(Trim(Me.TextBox1.Value)))
If Left(Me.TextBox1.Value, 1) = "0" Or _
Len(sEingabe) = 5 Or Len(sEingabe) = 7 Then
sEingabe = "0" & sEingabe
End If
If Len(sEingabe) = 6 Then ' als TTMMJJ/TT.MM.JJ
sTag = Left(sEingabe, 2)
sMonat = Mid(sEingabe, 3, 2)
sJahr = Right(sEingabe, 2)
If Val(sJahr) > 30 Then ' Jahreszahl > 30 ?
sJahr = "19" & sJahr ' dann 1900
Else ' sonst
sJahr = "20" & sJahr ' Jahr 2000
End If
ElseIf Len(sEingabe) = 8 Then ' als TTMMJJJJ/TT.MM.JJJJ
sTag = Left(sEingabe, 2)
sMonat = Mid(sEingabe, 3, 2)
sJahr = Right(sEingabe, 4)
End If
sDatum = sTag & "." & sMonat & "." & sJahr
If IsDate(sDatum) Then
Me.TextBox1.Value = sDatum
Else
With TextBox1
.Value = ""
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Application.EnableEvents = True
On Error GoTo 0
End If
If Not IsDate(TextBox1.Text) Then
MsgBox "Bitte ein richtiges Datum eingeben!"
With TextBox1
.Value = ""
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub
Ich möchte jetzt nur noch erreichen, dass wenn ein falsches Datum eingeben wird, nach der MsgBox "Bitte ein richtiges Datum eingeben!" der Cursor auf die TextBox1 zurückspringt!
Wie kann ich das erreichen?
mfg
Florian