VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

Ermittlung des ersten Tages einer Kalenderwoche nach DIN 1355

Gruppe

UDF

Bereich

DatumUndZeit

Thema

Ermittlung des ersten Tages einer Kalenderwoche nach DIN 1355

Problem

Wie kann ich den ersten Tag einer beliebigen Kalenderwoche in einem beliebigen Jahr ermitteln.

Lösung

Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.




StandardModule: Modul1

Private Function DINWeek(dat As Date) As Integer
   Dim dValue As Double
   dValue = DateSerial(Year(dat + (8 - WeekDay(dat)) Mod 7 - 3), 1, 1)
   DINWeek = (dat - dValue - 3 + (WeekDay(dValue) + 1) Mod 7) \ 7 + 1
End Function

Function DINDay(iYear As Integer, iDIN As Integer)
   Dim iDay As Integer, iWeek As Integer
   If iYear = 0 Then
      DINDay = 0
      Exit Function
   End If
   iDay = 1
   iWeek = DINWeek(DateSerial(iYear, 1, 1))
   If iWeek <> 1 Then
      Do Until DINWeek(DateSerial(iYear, 1, iDay)) = 1
         iDay = iDay + 1
      Loop
   Else
      Do Until DINWeek(DateSerial(iYear, 1, iDay)) <> 1
         iDay = iDay - 1
      Loop
      iDay = iDay + 1
   End If
   DINDay = DateSerial(iYear, 1, iDay) + (iDIN - 1) * 7
End Function

    


Beiträge aus dem Excel-Forum zu den Themen UDF und DatumUndZeit