An Luc, Danke sehr: Datum von letzter Woche
letzter
letzten Freitag grübelte ich über mein Datumsproblem.
Dein Posting hat mir sehr geholfen, weil in der Tat wurde in meiner Prozedur so einiges von
excel anders interpretiert z.B Monat als Tag etc.
Der Array Code, genial, aber für mich noch zu schwer.
Das habe ich nun anhand deiner Erklärung geschrieben und es funktioniert ganz gut:
Im Hauptmodul wird geprüft ob hier ein Datum vorliegt oder nicht, da das Makro ja
öfters aufgerufen werden kann:
If IsDate(RNGCELL.Offset(0, -1)) = False Then
Call GetDate(RNGCELL.Offset(0, -1).Value, RNGCELL.Offset(0, -1))
Dann wird die Unterprozedur aufgerufen mit zwei Parametern(Zellinhalt und ZellAdresse, wobei man eigentlich beides in einem machen könnte) und dieses sieht so aus:
Public Sub GetDate(ByVal STRDATE As String, ByVal RNGCELL As Range)
Dim strYear As String, strMonth As String, strPeriod As String
strYear = Right(STRDATE, 2)
If Left(strYear, 1) = "9" Then
strYear = "19" & strYear
Else
strYear = "20" & strYear
End If
Select Case LCase(Left(STRDATE, 3))
Case "jan"
strMonth = "01."
Case "feb"
strMonth = "02."
Case "mar"
strMonth = "03."
Case "apr"
strMonth = "04."
Case "may"
strMonth = "05."
Case "jun"
strMonth = "06."
Case "jul"
strMonth = "07."
Case "aug"
strMonth = "08."
Case "sep"
strMonth = "09."
Case "oct"
strMonth = "10."
Case "nov"
strMonth = "11."
Case "dec"
strMonth = "12."
End Select
strPeriod = "01." & strMonth & strYear
RNGCELL.Value = strPeriod
RNGCELL.NumberFormat = "MMM YY"
RNGCELL.Value = RNGCELL.Value
End Sub