In vielen Projekten, insbesondere bei Planungs-, Reporting- oder Controlling-Aufgaben, ist die Berechnung der Kalenderwoche nach DIN 1355 (Deutsche Industrienorm) erforderlich. Die Standard-Funktion KALENDERWOCHE in Excel kann je nach Version unterschiedliche Zählweisen verwenden. Um eine konsistente Berechnung nach der ISO-/DIN-Norm zu gewährleisten, kann ein kleines VBA-Makro eingesetzt werden.
Dieses Makro ermöglicht es, die Kalenderwoche sowohl durch direkte Eingabe eines Datums als auch über eine Zellreferenz zu ermitteln.
Public Sub kw_ermitteln()
' Beispiel: Ermittlung der Kalenderwoche eines Datums in Zelle A1
Dim kw As Integer
kw = DINKw(Range("A1")) ' Datum aus Zelle A1 verwenden
MsgBox "Die Kalenderwoche ist: " & kw
End Sub
Function DINKw(dat As Date) As Integer
Dim kw As Integer
' Berechnung der Kalenderwoche nach DIN 1355
kw = Int((dat - DateSerial(Year(dat), 1, 1) + _
((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
' Sonderfall: 0. KW des Jahres
If kw = 0 Then
kw = DINKw(DateSerial(Year(dat) - 1, 12, 31))
' Sonderfall: 53. KW
ElseIf kw = 53 And (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
kw = 1
End If
DINKw = kw
End Function

