 |
Excel 7.0: 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
|
 |