Deutsche Kalenderwochen berechnen

Wollen Sie mit Excel die Kalenderwoche eines vorgegebenen Datums berechnen, erhalten Sie von der Funktion »KALENDERWOCHE« - sie ist Bestandteil des Addins »Analyse-Funktionen« - unter Umständen ein falsches Ergebnis. Diese Funktion
berechnet die Kalenderwoche nach dem amerikanischen Standard und hält sich nicht
an die DIN-Norm. So fällt nach dieser Berechnung der 4. Januar 1999 angeblich in die
zweite Kalenderwoche und nicht - wie es korrekt wäre - in die erste.
Die DIN-Norm besagt, daß der 1. Januar eines Jahres nur dann zur ersten Kalenderwoche des Jahres gehört, wenn er auf einen Montag, Dienstag, Mittwoch oder Donnerstag fällt. Handelt es sich beim 1. Januar um einen Freitag, Samstag oder Sonntag, zählt er noch zur letzten Kalenderwoche des vorigen Jahres. Außerdem können der 29., 30. und 31. Dezember eines Jahres bereits zur ersten Kalenderwoche des folgenden Jahres gehören. Das ist dann der Fall, wenn der 31. Dezember auf einen Montag, Dienstag oder Mittwoch fällt.
Mit Hilfe der unten gezeigten VBA-Funktion können Sie die deutsche Kalenderwoche eines Datums ermitteln. Öffnen Sie mit [Alt] [F11] den Visual-Basic-Editor und wählen
»Einfügen | Modul«. In das neue Modul-Fenster geben Sie die unten aufgeführten Befehle ein. Jetzt können Sie die neue Funktion in Ihren Tabellen verwenden. Geben Sie in einer Zelle etwa als Funktion »deutsche_Kalenderwoche("4.1.99")« ein, so erhalten Sie als Ergebnis den Wert »1«.
Funktion zur Ermittlung der deutschen Kalenderwoche:
Function deutsche_Kalenderwoche(dat As Date) As
Integer
Dim kw As Integer
kw = Int((dat - DateSerial(Year(dat), 1, 1) + ((WeekDay(DateSerial(Year(dat), 1, 1)) + 1)Mod 7) - 3) / 7) + 1
If kw = 0 Then
kw = deutsche_Kalenderwoche(DateSerial (Year(dat) - 1, 12, 31))
ElseIf kw = 53 And (WeekDay(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
kw = 1
End If
deutsche_Kalenderwoche = kw
End Function