Hallo Kai,
habe sowas ähnliches mal hinter einem Button gebraucht.
Dim daysOfYear ( 1 To 366) As String
Dim days As Integer
Dim months As Integer
Dim febDays As Integer
Dim CurrentYear As Integer
Dim current As Integer
Dim i As Integer
CurrentYear = Year(Date)
current = 0
'Schaltjahr berechnen
'Im Gregorianischen Kalender (ab dem 15. Oktober 1582) ist die Definition folgendermaßen:
'Alle 4 Jahre ein Schaltjahr, alle vollen 100 Jahre nicht, volle 400 Jahre jedoch wieder.
Select Case CurrentYear
Case 2004, 2008, 2012, 2016 '...
febDays = 29
Case Else
febDays = 28
End Select
'Monate durchnudeln
For months = 1 To 12
Select Case Months
Case 1,3,5,7,8,10,12 '31 Tage
For i = 1 To 31
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & Format(months,"00") & "." & CurrentYear
Next
Case 2 '28 bzw. 29 Tage
For i = 1 To febDays
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & Format(months,"00") & "." & CurrentYear
Next
Case 4,6,9,11 '30 Tage
For i = 1 To 30
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & format(months,"00") & "." & CurrentYear
Next
End Select
Next
Die Berechnung des Schaltjahrs kannst du im Bedarfsfall noch etwas ausbauen, für meinen Anwendungsfall warens absehbar nur wenige Jahre, deshalb hab ich mir da nur wenig Mühe gegeben. ist vielleicht auch sonst noch performanter zu machen, für meinen Zweck hats allemal gereicht. Vielleicht hilft dir das schon mal weiter.
Viele Grüße
Jürgen