Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie berechnet man die Anzahl der Wochentage (Montage, Dienstage usw.) für einen Monat?
Public Enum Wochentag Montag = 1 Dienstag = 2 Mittwoch = 3 Donnerstag = 4 Freitag = 5 Samstag = 6 Sonntag = 7 End Enum Function WTage(dtDate As Date, Optional WT As Wochentag = 1) As Integer Dim dtStart As Date, n As Integer Dim i As Integer dtStart = DateSerial(Year(dtDate), Month(dtDate), 1) n = DateSerial(Year(dtStart), Month(dtStart) + 1, 1) - dtStart For i = 1 To n If Weekday(dtStart - 1 + i, vbMonday) = WT Then WTage = WTage + 1 End If Next i End Function
Aufruf z.B.:
MsgBox "Montag: " & WTage(Date, Montag) & vbNewLine & "Dienstag: " & WTage(Date, Dienstag) _ & vbNewLine & "Mittwoch: " & WTage(Date, Mittwoch) & vbNewLine & _ "Donnerstag: " & WTage(Date, Donnerstag) _ & vbNewLine & "Freitag: " & WTage(Date, Freitag) & vbNewLine & _ "Samstag: " & WTage(Date, Samstag) _ & vbNewLine & "Sonntag: " & WTage(Date, Sonntag), , _ "Anzahl der Wochentage für " & Month(Date) & "-" & Year(Date)
Ergebnis:
Ähnliche Artikel
Weiterlesen...