Datumseingaben vervollständigen
23.03.2009 14:15:07
Christof
folgendes Problem beschäftigt mich schon seit einer Weile.. ich komm nicht mehr weiter:
ich möchte eine Zahl, welche in eine Textbox eingegeben wird (egal in welchem Format.. ) in ein gültiges Datum umwandeln.. (vervollständigt mit aktuellen Angaben des Programms.. also zB. aktueller Monat und Jahr wenn nur Tag eingegeben wird.)
Bsp:
Eingabe: 1 --> Ergebnis: 01.03.2009 (Die Daten für Monat und Jahr stammen dann aus einer Zelle im Arbeitsblatt)
die meisten Eingaben hab ich schon abgefangen.. leider gehen folgende Kombinationen noch nicht:
Eingabe: 01.03. bzw. 1.3. ' Der letzte Punkt in diesen Eingaben will nicht verarbeitet werden.. ohne den letzten Punkt akzeptiert Excel es gleich als Datum..
hier der Code aus meiner Funktion:
Function datumok(datumur As String) As String
Dim akdatum As String
akdatum = Sheets("Daten").Cells(50, 8).Value 'aktuelles Datum aus Programm abrufen
beginn:
If IsDate(datumur) Then
datumok = Format(datumur, "dd.mm.yyyy") 'wenn Datumseingabe von Excel verwertbar
Else 'wenn Datumseingabe vervollständigt werden muss
If datumur Like "##[.]" Or datumur Like "#[.]" Or datumur Like "#" Or datumur Like "##" _
Then
datumur = datumur + "." + Format(akdatum, "mm.yyyy") 'wenn nur der Tag eingegeben wurde
GoTo beginn
ElseIf datumur Like "##[.]##[.]" Or datumur Like "#[.]##[.]" Or datumur Like "##[.]#[.]" Or _
_
datumur Like "#[.]#[.]" Then
datumur = datumur + "." + Format(akdatum, "yyyy") 'wenn Tag und Monat eingegeben wurde
GoTo beginn
End If
End If
End Function
Die Eingabe des Punktes im "Like"-Vergleich hatte ich auch schon ohne Eckige Klammern versucht..
Aufruf der Funktion zum Testen mit: MsgBox (datumok(InputBox("Datum:"))).
Vielen Dank schonmal für Hilfe
Christof