Einen universellen Jahreskalender mit rot markierten Sonntagen anlegen

In der CHIP-Ausgabe 10/97 wurde ein Makro vorgestellt, das auf Knopfdruck einen
Jahreskalender in die Tabelle einfügt. Die Zelle, an der sich der Mauszeiger befunden
hat, enthielt die gewünschte Jahreszahl, und das Makro fügte den Kalender rechts und
unterhalb dieser Zelle ein. Im folgenden Text wird gezeigt, wie Sie ohne umfangreiche
Makroprogrammierung eine spezielle, nach Ihren Wünschen formatierte Tabelle anlegen
können, die einen Kalender für ein Jahr Ihrer Wahl berechnet. Ein kurzes Makro färbt die Sonntage rot ein. Möchten Sie diese praktische Tabelle einrichten, öffnen Sie eine neue Arbeitsmappe und markieren das gesamte Arbeitsblatt mit einem Klick auf die graue Fläche zwischen der Spalten- und Zeilenüberschrift; den gleichen Effekt erzielen Sie mit der Tastenkombination [Strg] [A]. Über »Format | Zellen« gelangen Sie in eine Dialogbox, in der Sie im Register »Zahlen« den Eintrag »Benutzerdefiniert« markieren. In »Formate« schreiben Sie »TT TTT« und bestätigen mit »OK«. Danach markieren Sie die Zeilen »1« und »2« und formatieren sie über »Format | Zellen« mit »Standard«. Schreiben Sie in die Zelle »A2« die Abkürzung »Jan« für "Januar" und kopieren Sie den Eintrag nach rechts, bis in den Zellen von »A2« bis »L2« die Monate »Jan« bis »Dez« stehen. Um die Zelle nach rechts zu kopieren, bewegen Sie den Mauszeiger über die rechte untere Ecke der Zelle »A2«. Wenn sich der Mauszeiger in ein schwarzes Plus-Symbol verwandelt, klicken Sie und ziehen bei gedrückter Maustaste den Zellbereich auf, den Sie ausfüllen wollen.
Schreiben Sie nun in die Zelle »A3« die Formel »=DATUM($A$1;1;1)« und kopieren Sie sie wie zuvor beschrieben bis zur Zelle »L3«. Diese Formel passen Sie jetzt an jeden Monat an, indem Sie die zweitletzte Zahl durch die Zahl des Monats ersetzen. Im Februar lautet die Formel also »=DATUM($A$1;2;1)«, im April »=DATUM($A$1;4;1)«. In die Zelle »A4« setzen Sie die Formel »=DATUM($A$1;1;TAG(A3)+1)«. Auch diese Zelle kopieren Sie bis zum Dezember nach rechts. Der Zellbezug »A3« wird von Excel beim Kopieren automatisch in »B3«, »C3« und so weiter umgewandelt. Sie müssen jedoch wieder die Zahl vor »TAG« an den Monat anpassen. Die Formel im Februar muß »=DATUM($A$1; 2;TAG(B3) +1)« lauten, die im März »=DATUM($A$1;3;TAG(C3) +1)«. Diese zwölf Formeln müssen nun auch noch nach unten kopiert werden. Die Zelle »A4« kopieren Sie bis zu der Zelle »A33« nach unten, die Zelle »B4« nur bis »B30«, weil der Februar lediglich 28 Tage hat. Kopieren Sie die Formel immer so weit nach unten, wie viele Tage der Monat enthält. Nun müssen Sie nur noch dafür sorgen, daß der 29. Februar in Schaltjahren auftaucht. Dafür schreiben Sie in die Zelle »B31« die Formel »=WENN(TAG(DATUM($A$1;2;TAG(B30)+1))=1;"";DA-TUM($A$1;2;TAG(B30)+1))«.
Wenn Sie nun in »A1« eine vierstellige Jahreszahl eingeben, gleicht sich der Kalender
sofort an dieses Jahr an. Um die Sonntage farblich hervorzuheben, können Sie das unten angeführte Makro verwenden. Wählen Sie dafür »Einfügen | Makro | Visual Basic Modul«und tippen Sie in der neu angelegten Seite »Modul1« das Makrolisting ein. Nachdem Sie im Kalender eine neue Jahreszahl eingetragen haben, müssen Sie das Makro mit
»Extras | Makro | Sonntage« starten. Daraufhin werden alle Sonntage erneut in roter Farbe hervorgehoben.
Makrolisting zum Markieren der Sonntage:
Sub Sonntage()
ActiveSheet.Unprotect
With ActiveSheet.Range("A1:L33")
.Interior.ColorIndex = xlNone
Set Sotag = .Find("So"; LookIn:=xlValues)
If Not Sotag Is Nothing Then
ersteAdresse = Sotag.Address
Do
With Sotag.Interior
.ColorIndex = 0
.Pattern = xlGray25
.PatternColorIndex = 3
End With
Set Sotag = .FindNext(Sotag)
Loop While Not Sotag Is Nothing And Sotag.Address <> ersteAdresse
End If
End With
ActiveSheet.Protect
End Sub