Arbeitstage ohne Feiertag in VBA
Schritt-für-Schritt-Anleitung
Um in Excel die Anzahl der Arbeitstage ohne Wochenenden und Feiertage zu berechnen, kannst Du die folgende VBA-Funktion verwenden. Diese Funktion nennt sich Arbeitstage und nimmt zwei Datumswerte sowie einen Bereich für Feiertage als Parameter.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen und wähle Modul, um ein neues Modul zu erstellen.
- Kopiere den folgenden Code in das Modul:
Function Arbeitstage(AnfDatum As Date, EndDatum As Date, _
FreieTage As Excel.Range) As Long
Dim Datum As Date
Dim Tage As Long
Dim Istfrei As Boolean
Dim FreiTag As Range
If AnfDatum <= EndDatum Then
For Datum = AnfDatum To EndDatum
Istfrei = False
If Weekday(Datum, vbMonday) < 6 Then
For Each FreiTag In FreieTage
If Datum = FreiTag.Value Then
Istfrei = True
Exit For
End If
Next FreiTag
If Not Istfrei Then
Tage = Tage + 1
End If
End If
Next Datum
Else
Tage = ""
End If
Arbeitstage = Tage
End Function
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Du kannst nun die Funktion
Arbeitstage in Deinen Excel-Formeln verwenden.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du keine VBA-Lösungen nutzen möchtest, kannst Du auch die integrierte Excel-Funktion NETTOARBEITSTAGE verwenden. Diese Funktion berechnet die Anzahl der Arbeitstage zwischen zwei Daten unter Berücksichtigung von Feiertagen.
Die Syntax lautet:
=NETTOARBEITSTAGE(Startdatum; Enddatum; [Feiertage])
Hierbei kannst Du die Feiertage als optionalen Parameter hinzufügen, um die Berechnung zu verfeinern.
Praktische Beispiele
Beispiel für die Verwendung der Arbeitstage-Funktion:
- Angenommen, Du möchtest die Arbeitstage zwischen dem 01.01.2023 und dem 31.01.2023 ohne Feiertage berechnen. Deine Formel könnte wie folgt aussehen:
=Arbeitstage(DATUM(2023;1;1); DATUM(2023;1;31); A1:A10)
Hierbei steht A1:A10 für den Bereich, in dem Deine Feiertage aufgelistet sind.
Tipps für Profis
-
Nutze benannte Bereiche: Wenn Du regelmäßig mit bestimmten Feiertagen arbeitest, kannst Du diesen Bereich benennen (z.B. Feiertage), um die Lesbarkeit Deiner Formeln zu erhöhen.
-
Dynamische Datumsangaben: Erstelle dynamische Formeln, die automatisch die aktuellen Daten berücksichtigen, um die Berechnungen immer aktuell zu halten.
FAQ: Häufige Fragen
1. Wie kann ich die Funktion anpassen, um nur bestimmte Feiertage auszuschließen?
Du kannst die Liste der Feiertage im Bereich FreieTage anpassen, um nur die Feiertage anzugeben, die Du ausschließen möchtest.
2. Gibt es eine Möglichkeit, die Arbeitstage ohne Wochenenden und Feiertage in einer Tabelle grafisch darzustellen?
Ja, Du kannst die Ergebnisse der Arbeitstage-Funktion in einem Diagramm darstellen, um die Anzahl der Arbeitstage über verschiedene Zeiträume hinweg zu visualisieren.