ich suche nach einem Vba das mir die gesetzlichen Feiertage für Baden Württemberg anhand von einem Kalender mit fortlaufendem Datum anzeigt. Am besten wäre es wenn das Datum sich dann rot färben würde. Kann mir einer hier weiterhelfen?
Function Feiertag(Datum As Date) As String
Dim J%, D%
Dim O As Date
J = Year(Datum)
'Osterberechnung
D = (((255 - 11 * (J Mod 19)) - 21) Mod 30) + 21
O = DateSerial(J, 3, 1) + D + (D > 48) + 6 - _
((J + J \ 4 + D + (D > 48) + 1) Mod 7)
'Feiertage berechnen
Select Case Datum
Case DateSerial(J, 1, 1)
Feiertag = "Neujahr"
Case DateSerial(J, 1, 6)
Feiertag = "Dreikönig*"
Case DateAdd("D", -2, O)
Feiertag = "Karfreitag"
Case O
Feiertag = "Ostersonntag"
Case DateAdd("D", 1, O)
Feiertag = "Ostermontag"
Case DateSerial(J, 5, 1)
Feiertag = "Erster Mai"
Case DateAdd("D", 39, O)
Feiertag = "Christi Himmelfahrt"
Case DateAdd("D", 49, O)
Feiertag = "Pfingstsonntag"
Case DateAdd("D", 50, O)
Feiertag = "Pfingstmontag"
Case DateAdd("D", 60, O)
Feiertag = "Fronleichnam*"
Case DateSerial(J, 8, 15)
Feiertag = "Maria Himmelfahrt*"
Case DateSerial(J, 10, 3)
Feiertag = "Deutsche Einheit"
Case DateSerial(J, 11, 22) - (DateSerial(J, 11, 18) Mod 7)
Feiertag = "Buß- und Bettag*"
Case DateSerial(J, 10, 31)
Feiertag = "Reformationstag*"
Case DateSerial(J, 11, 1)
Feiertag = "Allerheiligen*"
Case DateSerial(J, 12, 24)
Feiertag = "Heilig Abend*"
Case DateSerial(J, 12, 25)
Feiertag = "EWeihnacht"
Case DateSerial(J, 12, 26)
Feiertag = "ZWeihnacht"
Case DateSerial(J, 12, 31)
Feiertag = "Silvester*"
Case Else
Feiertag = ""
End Select
End Function
Um die gesetzlichen Feiertage für Baden-Württemberg in Excel anzuzeigen, kannst Du eine VBA-Funktion verwenden. Gehe wie folgt vor:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Wähle im Menü Einfügen die Option Modul, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Function Feiertag(Datum As Date) As String
Dim J%, D%
Dim O As Date
J = Year(Datum)
'Osterberechnung
D = (((255 - 11 * (J Mod 19)) - 21) Mod 30) + 21
O = DateSerial(J, 3, 1) + D + (D > 48) + 6 - _
((J + J \ 4 + D + (D > 48) + 1) Mod 7)
'Feiertage berechnen
Select Case Datum
Case DateSerial(J, 1, 1)
Feiertag = "Neujahr"
Case DateSerial(J, 1, 6)
Feiertag = "Dreikönig*"
Case DateAdd("D", -2, O)
Feiertag = "Karfreitag"
Case O
Feiertag = "Ostersonntag"
Case DateAdd("D", 1, O)
Feiertag = "Ostermontag"
Case DateSerial(J, 5, 1)
Feiertag = "Erster Mai"
Case DateAdd("D", 39, O)
Feiertag = "Christi Himmelfahrt"
Case DateAdd("D", 49, O)
Feiertag = "Pfingstsonntag"
Case DateAdd("D", 50, O)
Feiertag = "Pfingstmontag"
Case DateAdd("D", 60, O)
Feiertag = "Fronleichnam*"
Case DateSerial(J, 8, 15)
Feiertag = "Maria Himmelfahrt*"
Case DateSerial(J, 10, 3)
Feiertag = "Deutsche Einheit"
Case DateSerial(J, 11, 22) - (DateSerial(J, 11, 18) Mod 7)
Feiertag = "Buß- und Bettag*"
Case DateSerial(J, 10, 31)
Feiertag = "Reformationstag*"
Case DateSerial(J, 11, 1)
Feiertag = "Allerheiligen*"
Case DateSerial(J, 12, 24)
Feiertag = "Heilig Abend*"
Case DateSerial(J, 12, 25)
Feiertag = "1. Weihnachtstag"
Case DateSerial(J, 12, 26)
Feiertag = "2. Weihnachtstag"
Case DateSerial(J, 12, 31)
Feiertag = "Silvester*"
Case Else
Feiertag = ""
End Select
End Function
Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Arbeitsblatt.
Verwende die Funktion =Feiertag(A1) in einer Zelle, wobei A1 das Datum ist, für das Du den Feiertag berechnen möchtest.
Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch eine Liste deutscher Feiertage in Excel importieren. Diese Methode erfordert jedoch, dass Du die Feiertage manuell pflegen musst.
Verwende die WVERWEIS-Funktion, um zu prüfen, ob ein Datum ein Feiertag ist:
=WVERWEIS(A1, Feiertage!A:B, 2, FALSCH)
Hierbei ist Feiertage!A:B der Bereich, in dem Deine Feiertagsdaten gespeichert sind.
=Feiertag(DATUM(2018,3,21)) verwenden, um zu überprüfen, ob es ein Feiertag ist.Start > Bedingte Formatierung.Case-Anweisungen hinzufügst.1. Wie kann ich die Feiertage für andere Jahre berechnen? Du musst die Logik für die Osterberechnung anpassen oder die Feiertagsdaten manuell eingeben.
2. Funktioniert dieser Code auch in Excel für Mac? Ja, die VBA-Funktion sollte auch in der Mac-Version von Excel funktionieren, solange Du den VBA-Editor verwenden kannst.
3. Kann ich die Feiertage für andere Bundesländer berechnen? Ja, Du musst dafür die spezifischen Feiertage für jedes Bundesland in die Funktion einfügen.