Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Anzahl der Arbeitstage pro Monat

Anzahl der Arbeitstage pro Monat
02.07.2006 11:45:37
Sophie
Hallo erstmal,
gibt es unter VBA irgendeine Möglichkeit mir die Anzahl der Arbeitstage pro Monat zu errechnen lassen.
In einer Woche hab ich 5 Arbeitstage, nun haben die Monate unterschiedlich viele Tage und dann muß noch berücksichtigt werden mit welchen Tag der Monat beginnt.
Gibt es da vielleicht schon was vorgefertigtes?, oder hat mir einer von Euch einen Tipp, wie sich dieses unter VBA bewerkstelligen läßt.
Schönen Gruß und Danke im Voraus für Eure Hilfe.
Sophie
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl der Arbeitstage pro Monat
ransi
Hallo Sophie
Aber nur weil du gezielt nach VBA gefragt hast.
Pack diesen code mal in ein Modul:


Option Explicit
Public Function wieviele_Tage_schuften(datum As Date) As Integer
Dim L As Date
For L = DateSerial(Year(datum), Month(datum), 1) To DateSerial(Year(datum), Month(datum) + 1, 0)
    If Weekday(L, vbMonday) <= 5 Then wieviele_Tage_schuften = wieviele_Tage_schuften + 1
Next
End Function


der aufruf in der Tabelle geht dann so:
Tabelle1
 AB
110.07.0621
Formeln der Tabelle
B1 : =wieviele_tage_schuften(A1)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Einfach einen Tag aus dem gewünschten Monat in eine Zelle schreiben.
ransi
Anzeige
AW: Anzahl der Arbeitstage pro Monat
02.07.2006 14:29:40
FP
Hallo Sophie,
der Link von Rolf ist falsch.
Was Du brauchst ist http://www.excelformeln.de/formeln.html?welcher=11
Bei diesen Formeln werden aber 2 Daten als Vorgabe benötigt ( 1. und letzter des Monats )
Alternative 1: in B2 steht dabei ein Datum ( es MUSS der 1. des Monats sein ! - z.B. 1.7.2006 )
=SUMME(4+(-REST(B2-{2.3.4.5.6};-7)&lt4-TAG(B2+32-TAG(B2))))
Alternative 2: in B2 steht irgend ein Datum des gesuchten Monats - z.B. 2.7.2006
=SUMME(4+(-REST(B2-TAG(B2)-{1.2.3.4.5};-7)&lt4-TAG(B2+32-TAG(B2))))
Alternative 3: in B2 steht die Monatszahl, in A1 das Jahr
=SUMME(4+(-REST((B2&"-"&$A$1)-{2.3.4.5.6};-7)&lt4-TAG((B2&"-"&$A$1)+32-TAG(B2&"-"&$A$1))))
Wünsche gutes Gelingen :-)
Servus aus dem Salzkammergut
Franz
Anzeige
AW: Anzahl der Arbeitstage pro Monat per VBA
02.07.2006 15:39:44
FP
Hallo Sophie,
2 Makros und Du hast die Wahl
a) Aufruf: AnzArbTageMonDat
Ergebnis: Arbeitstage des aktuellen Monats
b) Aufruf: AnzArbTageMonDat("1.9.2006")
Ergebnis: Arbeitstage September 2006
c) Aufruf: AnzArbTageMonat
Ergebnis: Arbeitstage des aktuellen Monats
d) Aufruf: AnzArbTageMonat(9,2006)
Ergebnis: Arbeitstage September 2006
erlaubt ist natürlich auch
Aufruf: AnzArbTageMonDat(Range("B2")) bzw. AnzArbTageMonat(Range("A1"), Range("B1"))
wobei dann in B2 ein Datum bzw. in A1 das Monat und in B1 das Jahr stehen sollte
Function AnzArbTageMonat(Optional ByVal Monat As Byte, _ Optional ByVal Jahr As Integer) As Byte Dim Datum As Date If Monat = 0 Then Monat = Month(Date) If Jahr = 0 Then Jahr = Year(Date) AnzArbTageMonat = AnzArbTageMonDat(DateSerial(Jahr, Monat, 1)) End Function
Function AnzArbTageMonDat(Optional ByVal Datum As Date) As Byte If Datum = 0 Then Datum = Date Datum = DateSerial(Year(Datum), Month(Datum) + 1, -2) AnzArbTageMonDat = 20 For Datum = DateSerial(Year(Datum), Month(Datum), 27) To Datum If (Datum Mod 7) < 5 Then AnzArbTageMonDat = AnzArbTageMonDat + 1 Next End Function
Servus aus dem Salzkammergut
Franz
Anzeige
AW: Anzahl der Arbeitstage pro Monat
02.07.2006 18:35:14
Sophie
Vielen Dank an Rolf, ransi und Franz, Ihr habt mein Problem gelöst.
Gruß
Sophie
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Anzahl der Arbeitstage pro Monat berechnen in Excel


Schritt-für-Schritt-Anleitung

Um die Anzahl der Arbeitstage pro Monat in Excel zu berechnen, kannst du eine benutzerdefinierte VBA-Funktion verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Public Function wieviele_Tage_schuften(datum As Date) As Integer
       Dim L As Date
       For L = DateSerial(Year(datum), Month(datum), 1) To DateSerial(Year(datum), Month(datum) + 1, 0)
           If Weekday(L, vbMonday) <= 5 Then wieviele_Tage_schuften = wieviele_Tage_schuften + 1
       Next
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

  5. Gib ein beliebiges Datum des Monats in eine Zelle ein (z. B. 01.09.2023 in Zelle A1).

  6. In einer anderen Zelle (z. B. B1) kannst du die Funktion verwenden: =wieviele_Tage_schuften(A1).

Jetzt wird die Anzahl der Arbeitstage pro Monat angezeigt.


Häufige Fehler und Lösungen

  • Fehler: „#NAME?“

    • Dies passiert, wenn die Funktion nicht korrekt eingegeben wurde. Stelle sicher, dass der VBA-Code ohne Fehler eingefügt wurde.
  • Fehler: Falsches Ergebnis

    • Überprüfe, ob das eingegebene Datum tatsächlich im gewünschten Monat liegt und dass es sich um ein gültiges Datum handelt.

Alternative Methoden

Neben der VBA-Methode kannst du auch Formeln nutzen:

  1. Formel mit dem 1. des Monats:

    • Wenn in Zelle B2 der 1. eines Monats steht, kannst du folgende Formel verwenden:
      =SUMME(4+(-REST(B2-{2.3.4.5.6};-7)<4-TAG(B2+32-TAG(B2))))
  2. Formel mit einem beliebigen Datum:

    • Wenn in Zelle B2 ein beliebiges Datum steht:
      =SUMME(4+(-REST(B2-TAG(B2)-{1.2.3.4.5};-7)<4-TAG(B2+32-TAG(B2))))
  3. Formel mit Monat und Jahr:

    • Wenn in Zelle A1 das Jahr und in B2 die Monatszahl steht:
      =SUMME(4+(-REST((B2&"-"&$A$1)-{2.3.4.5.6};-7)<4-TAG((B2&"-"&$A$1)+32-TAG(B2&"-"&$A$1))))

Praktische Beispiele

  1. Arbeitstage im August 2023:

    • Setze 01.08.2023 in Zelle A1 und verwende =wieviele_Tage_schuften(A1) in Zelle B1. Das Ergebnis wird 23 Arbeitstage anzeigen.
  2. Arbeitstage im September 2023:

    • Setze 01.09.2023 in Zelle A1 und wiederhole die obigen Schritte. Das Ergebnis wird 21 Arbeitstage anzeigen.

Tipps für Profis

  • Dynamische Berechnung: Du kannst die Funktion so anpassen, dass sie automatisch die aktuellen Arbeitstage für jeden Monat berechnet, indem du das aktuelle Datum verwendest.

  • Verwendung von Feiertagen: Wenn du auch Feiertage berücksichtigen möchtest, kannst du eine Liste der Feiertage erstellen und diese in deiner Berechnung ausschließen.


FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Arbeitstage im Jahr berechnen? Eine gute Methode ist, die Funktion für jeden Monat zu verwenden und die Ergebnisse zu summieren.

2. Was ist der Unterschied zwischen Arbeitstagen und Werktagen? Arbeitstage sind in der Regel die Tage, an denen man arbeitet (z. B. Montag bis Freitag), während Werktage auch Samstage umfassen können, je nach Branche.

3. Wie kann ich die Anzahl der Arbeitstage pro Monat in einer bestimmten Excel-Version berechnen? Die oben genannten Methoden funktionieren in Excel 2010 und neueren Versionen. Stelle sicher, dass du die richtige VBA-Umgebung aktivierst.

4. Gibt es eine Möglichkeit, die Berechnung für zukünftige Monate zu automatisieren? Ja, du kannst eine Formel erstellen, die auf das aktuelle Datum verweist, um zukünftige Arbeitstage zu berechnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige