VBA: Jahreszahl im Datum automatisch ergänzen

Hallo,
mit der Funktion:

Public Function Jahreszahl(ByVal KeyAscii As MSForms.ReturnInteger)
’ Funktionsaufruf:
'Set ctr = cboAnnahmefrist '***Ergänzt die Jahreszahl nach dem 2. Pkt. im Datum***
'Jahreszahl KeyAscii
Dim adat
Dim idat

Select Case KeyAscii 'Übergebener Asciicode
Case 8, 48 To 57 'Backtaste, Tasten 0 bis 9
KeyAscii = KeyAscii 'Alles klar

Case 46 'Taste Punkt
adat = 0
Select Case InStr(1, ctr.Text, „.“) 'Wenn bereits 1 Punkt vorhanden (Instr > 0)
Case Is > 0 'Mind. 1 Punkt vorhanden
If Right(ctr.Text, 4) = CStr(Year(Now)) Then 'Wenn Jahr schon steht
KeyAscii = 0 'keinen Punkt zulassen
ElseIf Right(ctr.Text, 1) = „.“ Then 'Wenn letzter Punkt vorhanden
KeyAscii = 0 'keinen Punkt mehr zulassen
ctr.Text = ctr.Text & Year(Now) 'und Jahr wieder hinschreiben
ctr.SelStart = Len(ctr.Text) - 4 'und Jahr selektieren
ctr.SelLength = Len(ctr.Text)
Else 'wenn Jahr nicht da steht und auch kein Punkt am Ende
adat = 1 'ein Punkt
For idat = 1 To Len(ctr.Text) 'prüfen, ob der 2. Punkt schon steht
If Mid(ctr.Text, idat, 1) = „.“ Then 'wenn ja
adat = adat + 1 'a um 1 erhöhen
If adat >= 2 Then
'****Hier müßte die Änderung erfolgen***
ctr.Text = ctr.Text & „.“ & Year(Now)
ctr.SelStart = Len(ctr.Text) - 4
ctr.SelLength = Len(ctr.Text)
KeyAscii = 0
Exit For
End If
End If
Next idat
End If
End Select

Case Else 'Alle anderen Tasten
KeyAscii = 0 'werden nicht zugelassen

End Select
End Function

wird nach Eingabe des 2. Punktes die Jahreszahl automatisch ergänzt. Die Funktion soll dahin verändert werden, dass nicht immer die aktuelle Jahreszahl ergänzt wird, sondern Jahreszahl + 1 ergänzt wird, wenn das eingebene Datum vor dem Tagesdatum liegt, also bei Eingabe heute von 12.10. soll 12.10.2010 ergänzt werden (Bei der Datumseingabe sind nur Ziffern und Punkte zugelassen. Wie muss die Ergänzung aussehen?
Danke u. Gruss
Wilhelm

Grüezi Willhelm

mit der Funktion:

[…]

wird nach Eingabe des 2. Punktes die Jahreszahl automatisch
ergänzt. Die Funktion soll dahin verändert werden, dass nicht
immer die aktuelle Jahreszahl ergänzt wird, sondern Jahreszahl

  • 1 ergänzt wird, wenn das eingebene Datum vor dem Tagesdatum
    liegt, also bei Eingabe heute von 12.10. soll 12.10.2010
    ergänzt werden (Bei der Datumseingabe sind nur Ziffern und
    Punkte zugelassen. Wie muss die Ergänzung aussehen?

Ohne deine UF wird das etwas schwierig nachzustellen.

Im Prinzip musst Du nach dem Hinzufügen des aktuellen Jahres den Wert mit CDate() in ein Datum umwandeln und dieses dann mit dem aktuellen Datum (Date) vergleichen. Je nach Ergebnis > oder