In Excel ist das rechnen mit Kalenderwochen nicht direkt möglich. Um das zu bewerkstelligen, muss aus einem Tag der Kalenderwoche ein „echtes” Datum berechnet werden. Auf der Basis der Excel-Formel von Franz Pölt: =("4.1." & A2) + A1*7 - 7 - REST("2.1." & A2; 7)
bietet sich in VBA solch eine Funktion an:
Function TagInKaWo(Jahr As Integer, KaWo As Integer, _ Optional WTag As Variant) As Date 'WTag = Mo (1) .. So (7) If IsMissing(WTag) Then WTag = 1 'Montag Jahr = Year(DateSerial(Jahr, 1, 1)) 'Falls 2-stellig übergeben TagInKaWo = DateValue("4.1." & Jahr) + KaWo * 7 - _ 8 - DateValue("2.1." & Jahr) Mod 7 + WTag End Function
Fügen Sie diese Funktion in ein allgemeines Modul ein oder erstellen Sie bei Bedarf daraus ein Add-In bzw. binden Sie es in ein bestehendes ein. Das Jahr kann zwei- oder vierstellig eingegeben werden, die Kalenderwoche wird nicht auf Plausibilität geprüft. Das dritte Argument ist optional. Wird es nicht eingegeben, dann wird der Montag der entsprechenden Kalenderwoche zurück gegeben. Sollen andere Wochentage berechnet werden, dann wird ein entsprechender Wert (Montag = 1, Dienstag = 2, .. Sonntag = 7) erwartet. Auch hier findet keine Prüfung auf Plausibilität statt (ist aber leicht möglich).
[NachObenLetzte Verweis=„CS: Datum aus KaWo”]