VBA-Beispiel 057
mail schreiben
mail schreiben

per VBA einen Jahreskalender erstellen

Erstellt vom aktuellen Jahr einen Jahreskalender. Für jeden Monat wird ein neues Tabellenblatt angelegt. Wochenendtage werden farblich hervorgehoben.
Sub Jahreskalender_anlegen()
'legt für das aktuelle Jahr einen Kalender an
Dim Jahr As String
Dim Monat As Integer, Tag As Integer, AnzTage As Integer
Dim d As Date

On Error GoTo Fehler

Jahr = Year(Date)

For Monat = 1 To 12

  'Anzahl Tage des Monats
   AnzTage = DateSerial(Year(Now), Monat + 1, 1) _
           - DateSerial(Year(Now), Monat, 1)

  'neuen Monat anlegen
   Worksheets.Add After:=Worksheets(Worksheets.Count)

   With ActiveSheet
            .Name = Format(DateSerial(1, Monat, 1), "mmm")
   End With

   Range("A1:AH2").Interior.ColorIndex = 35
   Range("D1:AH1").NumberFormat = "d"
   Range("D1:AH2").HorizontalAlignment = xlCenter
   Range("D2:AH2").NumberFormat = "ddd"

   For Tag = 1 To AnzTage
     With Cells(1, Tag + 3)
       d = DateSerial(Jahr, Monat, Tag)
           .Value = d
               'prüfen ob Sa / So wenn ja Hintergrundfarbe grün
                If Weekday(d) = 1 Or Weekday(d) = 7 Then
                    Range(Cells(3, Tag + 3), (Cells(40, Tag + 3))).Interior.ColorIndex = 35
                End If
            Cells(2, Tag + 3) = d
       End With
   Next Tag

   Columns("D:AH").ColumnWidth = 3
   Cells(3, 1).Activate
   Cells(1, 1) = "Name"
   Cells(1, 2) = "Vorname"
   Cells(1, 3) = "geb"

Next Monat

Exit Sub

Fehler:

    MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
    & "Beschreibung: " & Err.Description _
    , vbCritical, "Fehler"
End Sub

Download:   vba057.zip