funzt in-xl97, xl2000 bei mir, in xlXP nicht.
22.12.2004 21:29:10
Fritz Sanne
Den unten stehenden Code zur Eingabe des Datums im Format ddmmyy habe ich irgendwo abgekupfert (ich glaube von Hans CD) und es funktioniert bei mir unter Excel97, Excel2000, bei meinem Kumpel, für den ich die gesamte Anwendung geschrieben und ihm per email zugesandt habe, wird das Datum in den Textboxen bei ExcelXP bei ihm zuhause und bei Excel2000 im Büro nicht umgewandelt.
Hat da jemand 'ne Idee, oder kann Excel auf weiteren Reisen Code verlieren? Doch wohl nicht ;-)
Weil bald Weihnachten ist:
Wird mal wieder Zeit, mich bei Euch allen zu bedanken. Ich habe zwar kaum Ahnung von Excel, man nennt mich aber trotzdem schon manchmal "Hey, Excel-König".
Also meine lieben Excel-Lehrer: Ihr krönt Häupter! In meinem Fall wie jetzt machmal sogar leere .-)) Aber ich sage immer, dass ich das auf Herbers Excel Forum gelernt habe und manch einer traut sich auch schon rein in die Gemeinde.
Also: Alles Gute zum Fest und zum Jahreswechsel gutes und reichlich zu trinken.
Fritz
Private Sub txtDatum_Change()
Dim dteEingabe As Date
Dim intTag As Integer, intMonat As Integer, intJahr As Integer
If frmfahrer.txtdatum.Text = "" Then Exit Sub
If Not IsNumeric(Right(frmfahrer.txtdatum.Text, 1)) Then
Beep
frmfahrer.txtdatum.SelStart = Len(frmfahrer.txtdatum.Text) - 1
frmfahrer.txtdatum.SelLength = 1
lblAusgabe.Caption = "Nur Ziffern erlaubt!"
Exit Sub
Else
lblAusgabe.Caption = ""
End If
intTag = CInt(Left(frmfahrer.txtdatum.Text, 2))
Select Case Len(frmfahrer.txtdatum.Text)
Case 0
Case 1
If intTag > 3 Then
Beep
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 1
lblAusgabe.Caption = "Maximal 31 Tage"
Else
lblAusgabe.Caption = ""
End If
Case 2
If intTag > 31 Then
Beep
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 2
lblAusgabe.Caption = "Maximal 31 Tage"
Else
lblAusgabe.Caption = ""
End If
Case 3
intMonat = CInt(Right(frmfahrer.txtdatum.Text, 1))
If intMonat > 1 Then
Beep
frmfahrer.txtdatum.SelStart = 2
frmfahrer.txtdatum.SelLength = 1
lblAusgabe.Caption = "Maximal 12 Monate"
Else
lblAusgabe.Caption = ""
End If
Case 4
intMonat = CInt(Right(frmfahrer.txtdatum.Text, 2))
If intMonat > 12 Then
Beep
frmfahrer.txtdatum.SelStart = 2
frmfahrer.txtdatum.SelLength = 2
lblAusgabe.Caption = "Maximal 12 Monate"
Else
lblAusgabe.Caption = ""
End If
Select Case intMonat
Case 2
If intTag > 29 Then
Beep
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 4
lblAusgabe.Caption = "Maximal 29 Tage"
Else
lblAusgabe.Caption = ""
End If
Case 4, 6, 9, 11
If intTag > 30 Then
Beep
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 4
lblAusgabe.Caption = "Maximal 30 Tage"
Else
lblAusgabe.Caption = ""
End If
End Select
Case 6
intMonat = CInt(Mid(frmfahrer.txtdatum.Text, 3, 2))
intJahr = CInt(Right(frmfahrer.txtdatum.Text, 2))
If intJahr Mod 4 > 0 And intMonat = 2 And intTag = 29 Then
Beep
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 6
lblAusgabe.Caption = "Maximal 28 Tage"
Else
dteEingabe = DateSerial(intJahr, intMonat, intTag)
lblAusgabe.Caption = dteEingabe & " " & Format(dteEingabe, "dddd")
frmfahrer.txtdatum.SelStart = 0
frmfahrer.txtdatum.SelLength = 6
End If
End Select
If Len(frmfahrer.txtdatum) = 6 Then frmfahrer.txtbeginn.SetFocus
End Sub