Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Tagesblätter eines Monats ohne Wochenenden und Feiertage anlegen

Gruppe

Kalender

Problem

Wie kann ich in der aktuellen Arbeitsmappe für jeden Tag des Monats ein Arbeitsblatt anlegen, wobei Wochenenden und Feiertage ausgespart bleiben sollen? Die Tagesblättter sind nach Datum zu benennen.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

StandardModule: basMain

Sub MonatAnlegen()
   Dim wks As Worksheet
   Dim datDay As Date
   Dim var As Variant
   Dim lDay As Long
   Dim iYear As Integer, iMonth As Integer
   Application.ScreenUpdating = False
   Set wks = ActiveSheet
   iYear = Year(Range("A1").Value)
   iMonth = Month(Range("A1").Value)
   For lDay = DateSerial(iYear, iMonth, 1) To _
      DateSerial(iYear, iMonth + 1, 0)
      var = Application.Match( _
         lDay, Worksheets("Feiertage").Columns(1), 0)
      If IsError(var) And WorksheetFunction.WeekDay(lDay) < 6 Then
         Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
         ActiveSheet.Name = Format(lDay, "dd.mm.yy")
      End If
   Next lDay
   wks.Select
   Application.ScreenUpdating = True
End Sub

    

Beiträge aus dem Excel-Forum zu den Themen DatumZeit und Kalender