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