Textbox5 enthält ein Beginndatum, Textbox6 das Endedatum. Code Zeitberechnen4 berechnet die Zeitdifferenz zwischen den beiden Textboxes. Wie kann ich folgende Probleme abfangen?:
In der Berechnung wird in Textbox6 auch leider ein "Negativdatum", also ein Datum, welches älter als das Datum in Textbox5 ist, zugelassen. Wie kann ich abfangen, dass nur ein Datum nach dem Datum in Textbox5 zugelassen wird? - Wie kann ich evtl. das Format noch konkreter i.d. Griff kriegen? - es soll lauten "21.10.09" und wird dabei ohne Trennzeichen eingegeben. Wäre denkbar, selbst wenn 2009 eingegeben wird, dass nur das Format 09 akzeptiert wird? - Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
Private Sub TextBox5_Change()
Dim Txt$
Txt = TextBox5.Text
If Txt = "" Then Exit Sub
If IsNumeric(Txt) = False Then GoTo ERRORHANDLER
If Len(Txt) = 6 Then
Txt = Left(Txt, 2) & "." & Mid(Txt, 3, 2) _
& "." & Right(Txt, 2)
If Not IsDate(Txt) Then
GoTo ERRORHANDLER
Else
TextBox5.Text = Txt
Exit Sub
End If
ERRORHANDLER:
Beep
MsgBox "Bitte nur Zahlen eingeben !", vbCritical
TextBox5.Value = ""
End If
End Sub
Private Sub TextBox6_Change()
Dim Txt$
Txt = TextBox6.Text
If Txt = "" Then Exit Sub
If IsNumeric(Txt) = False Then GoTo ERRORHANDLER
If Len(Txt) = 6 Then
Txt = Left(Txt, 2) & "." & Mid(Txt, 3, 2) _
& "." & Right(Txt, 2)
If Not IsDate(Txt) Then
GoTo ERRORHANDLER
Else
TextBox6.Text = Txt
Call Zeitberechnen4
Exit Sub
End If
ERRORHANDLER:
Beep
MsgBox "Bitte nur Zahlen eingeben !", vbCritical
TextBox6.Value = ""
End If
End Sub
Sub Zeitberechnen4()
If IsDate(TextBox5) And IsDate(TextBox6) Then
TextBox7 = Round((Abs(CLng(CDate(TextBox5)) - CLng(CDate(TextBox6))) + 1) / 30.4, 2)
Else
'TextBox7 = ""
MsgBox "vollständiges Datum", vbCritical
Exit Sub
End If
End Sub