Ich habe einen Code, der aus dem eingegebenen Wert in einer Textbox, den eingegebenen Wert in das Datumsformat TT.MM.JJJJ umwandelt:
Hier ist der Code:
Private Sub TB_alte_Befr_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.TB_alte_Befr.Value = "" Then ' TextBox ist nicht leer ?
Application.EnableEvents = False
On Error GoTo Fehler
sEingabe = CStr(CLng(Trim(Me.TB_alte_Befr.Value)))
If Left(Me.TB_alte_Befr.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.TB_alte_Befr.Value = sDatum
Else
With TB_alte_Befr
.Value = ""
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Application.EnableEvents = True
On Error GoTo 0
End If
If Not IsDate(TB_alte_Befr.Text) Then
If sDatum = "" Then
'NOTHING
Else
Cancel = True
MsgBox "Bitte ein richtiges Datum eingeben!"
With TB_alte_Befr
.Value = ""
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End If
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub
Dieser Code hat bis jetzt einwandfrei funktioniert! Die Datei wurde jetzt mit einer höheren Excel-Version (Excel 2003) abgespeichert und seit dem bringt Excel die Fehlermeldung: Fehler beim Kompilieren - Objekt oder Bibliothek nicht gefunden!
Der Cursor bleibt in der Zeile
sEingabe = CStr(CLng(Trim(Me.TB_alte_Befr.Value)))
bei "Trim" stehen!
Ist diese Variable nur nicht richtig definiert?
Ich kann den Code nicht ganz verstehen! Übersteigt mein Niveau!
Bitte helft mir!
Schöne Grüße
Florian