Hallo Mr.K
Wieder als Function (Feiertage eines Jahres) ohne Dateserial mit letzter Berechnungsart!
Function Feiertag2(Zelle As Date) As String
Dim DatumString As String
Dim Jahr As Integer, Tag As Integer, Monat As Integer
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, g As Integer, h As Integer, i As Integer, k As Integer, L As Integer, m As Integer, p As Integer
a = Jahr Mod 19
Jahr = Year(Zelle)
a = Jahr Mod 19
b = Jahr \ 100
c = Jahr Mod 100
d = b \ 4
e = b Mod 4
f = (b + 8) \ 25
g = (b - f + 1) \ 3
h = (19 * a + b - d - g + 15) Mod 30
i = c \ 4
k = c Mod 4
L = (32 + 2 * e + 2 * i - h - k) Mod 7
m = (a + 11 * h + 22 * L) \ 451
p = (h + L - 7 * m + 114) \ 31
Tag = (h + L - 7 * m + 114) Mod 31 + 1
Monat = p
DatumString = "01.01." & Jahr & _
"06.01." & Jahr & _
Format(DateAdd("d", -2, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
Format(DateAdd("d", 0, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
Format(DateAdd("d", 1, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
"01.05." & Jahr & _
Format(DateAdd("d", 39, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
Format(DateAdd("d", 50, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
Format(DateAdd("d", 60, DateValue(Tag & "/" & Monat & "/" & Jahr)), "dd.mm.yyyy") & _
"03.10." & Jahr & _
"01.11." & Jahr & _
"24.12." & Jahr & _
"25.12." & Jahr & _
"26.12." & Jahr & _
"31.12." & Jahr & _
"31.10." & Jahr
FName = Array("Neujahr", "Heilige Dreikönig", "Karfreitag", "Ostersontag", "Ostermontag", "Tag der Arbeit", "Christi Himmelfahrt", "Pfingstmontag", "Fronleichnam", "Tag der Einheit", "Allerheiligen", "Heiligabend", "1. Weihnachtstag", "2. Weihnachtstag", "Silvester", "Reform")
If InStr(DatumString, Zelle) > 0 Then Feiertag2 = FName(InStr(DatumString, Zelle) / 10)
End Function
|