Sie wollen den #Montag einer #Kalenderwoche ermitteln? Mit einer #VBA-#Funktion? Ich hätte da eine:
Public Function MontagKW(myKW As Long, Optional myJahr )
' gibt den Montag der übergebenen Kalenderwoche im übergebenen oder aktuellen Kalenderjahrzurück
Dim KWMon As Date
If IsMissing(myJahr) Then myJahr = Year(Date)
MontagKW = DateSerial(myJahr, 1, 1) + (myKW - 1) * 7
MontagKW = MontagKW+ 1 - WeekDay(MontagKW, 2)
If Format(MontagKW, "ww", 2, 2) <> myKW Then MontagKW = MontagKW+ 7
End Function
Diese Funktion können Sie nun aus Excel oder Access oder VBA heraus aufrufen, sie wird Ihnen hoffentlich viel Freude machen 🙂
dankeschön 🙂
LikeLike
Hallo Katharina,
ich habe die Funktion einsetzen wollen, jedoch bemerkt, dass sie nicht korrekt arbeitet.
Bsp.: Montag der 1. KW 2020 ermitteln.. ergibt nach deiner Funktion den 06.01. obwohl in diesem Fall der 30.12.19 ausgegeben werden müsste. Ursache: die Funktion Format arbeitet hier nicht korrekt trotz der Angabe vbFirstFourDays. Lösung: anstelle der Format-Funktion die Application.Worksheetfunction.IsoWeekNum einsetzen und auch hier vbFirstFourDays angeben. Im übrigen ist die Formatierung „ww“ nicht erforderlich, da du ja den Long der übergebenen Woche mit der aus der jew. Funktion ausgegebenen Kalenderwoche vergleichst. Daher kann Format direkt mit IsoWeekNum ausgetauscht werden.
LikeLike