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 🙂
Gefällt mir:
Gefällt mir Wird geladen …
Ähnliche Beiträge
Über katharinakanns
Microsoft Office Master Specialist mit viel Verständnis für IHR Geschäft - ich analysiere IHRE Situation, optimiere IHRE Prozesse, automatisiere IHRE Routineaufgaben, finde IHRE Lösung, unterrichte IHRE MitarbeiterInnen, mache Vorlagen mit IHRER CI, spare IHRE Zeit und IHR Geld.
Ich freue mich darauf, SIE kennenlernen zu dürfen :-)
Profilfoto: Miriam blitzt - Miriam Mehlman Fotografie - www.miriammehlman.at
Dieser Beitrag wurde unter
VBA abgelegt und mit
Datum,
eigene,
Function,
funktion,
Kalenderwoche,
Montag,
VBA verschlagwortet. Setze ein Lesezeichen auf den
Permalink.
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