Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Tabellen für die Werktage eines Monats erstellen

Gruppe

Change

Problem

Wie kann ich durch die Eintragung einer Jahres- bzw. Monatszahl für jeden Tag des jeweiligen Monats ein Arbeitsblatt generieren lassen? Die Arbeitsblätter sollen als Name den Tag und den Wochen tag tragen.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul des Arbeitsblattes ein.

ClassModule: Tabelle1

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Dim iYear As Integer, iMonth As Integer, iDay As Integer
  Application.ScreenUpdating = False
  If Intersect(Target, Range("B1:B2")) Is Nothing Then Exit Sub
  If IsEmpty(Range("B1")) Or IsEmpty(Range("B2")) Then Exit Sub
  iYear = Range("B1")
  iMonth = Range("B2")
  For iDay = 1 To Day(DateSerial _
    (iYear, iMonth + 1, 0))
    If WeekDay(DateSerial(iYear, _
      iMonth, iDay), 2) < 6 Then
      Worksheets("Tag").Copy after:=Worksheets _
        (Worksheets.Count)
      ActiveSheet.Name = iDay & " " & Format( _
        DateSerial(iYear, iMonth, iDay), "dddd")
    End If
  Next iDay
  Worksheets(1).Select
  Application.ScreenUpdating = True
End Sub