Kleine Anleitung zu Kalendern
Ausgangspunkt für dieses Beispiel war die Frage: Wie baut man einen Kalender, in dem die Feiertage farbig hinterlegt sind.
Mit »Martin’s PowerFunctions kann man die Hintergrundfarbe einer Zelle setzen. Hier wird das Problem aber mit Bordmitteln angegangen. Das ist etwas komplizierter, aber funktioniert dann mit jeder RagTime-Installation.
Einen Monatskalender mit hinterlegten Feiertagen aufbauen
Die Grundidee dabei: Rechenblätter können auch Zeichnungen in eine Zelle hinein rechnen. Baut man sich nun Formeln, die in jede Zelle für einen Feiertag ein rotes Rechteck zeigt und legt darüber transparent einen Rahmen mit den Kalenderdaten, dann hat man das Ergebnis. Zur Illustration spiele ich das Verfahren für einen Monat durch.
Das Beispieldokument hat ein Eingaberechenblatt, in das man ein Datum eingibt. Es wird dann der Monat aufgebaut, in dem dieses Datum liegt.
Mit der Funktion »SetzeTag« wird unter der Eingabe der Monatserste ermittelt. Weil mein grafischer Aufbau nach Wochen gliedert, brauch ich noch den Montag, der die Woche mit dem 1. beginnt: Vom ersten wird dessen Wochentag abgezogen (das ergibt den Sonntag, der dem ersten voran geht) und 1 addiert.
Das Rechenblatt für den Monat selbst hat drei Lagen. Die dritte Lage benutze ich, um alle Daten ab dem Montag für 6 Wochen auszurechnen. Die Zelle A2 übernimmt das Montagsdatum aus dem Eingaberechenblatt. Nach rechts wird je 1 addiert, und die Zellen darunter addieren je 1 zu dem Datum eine Zeile darüber, Spalte G. (Dass die Daten nur die Tagesnummer zeigen, ist über ein Werteformat geregelt.)
In Lage 1 filtere ich die Daten heraus, die im selben Monat wie das Eingabedatum liegen: Der Monatserste des entsprechenden Datums in Lage 3 muss dasselbe Datum sein, wie der Monatserste im Eingaberechenblatt. Ist das nicht der Fall, bleibt die Zelle leer. (Für die Wochen 2 bis 4 wird der Wert ohne Überprüfung übernommen: Diese Tage existieren in jedem Monat.)
(Man kann das, was ich auf Lage 3 und Lage 1 verteilt habe, auch in je eine Formel quetschen. Aber die Aufteilung in zwei Schritte ist übersichtlicher.)
Lage 2 rechnet nun die Hinterlegung aus. In Zelle A9 liegt eine Zeichnung mit einem roten Rechteck. Ist die korrespondierende Zelle in Lage 1 nicht leer und ist das Datum kein Werktag (Funktion »KlWerktagGER« liefert die bundeseinheitlichen Feiertage), dann wird die Zeichnung aus Zelle A9 übernommen. Sonst bleibt die Zelle leer.
Zum Schluss wird das ganze mit zwei Rahmen zusammengebaut: Der hintere Rahmen zeigt die Lage 2 des Rechenblatts, der davor die Lage 1. Der vordere Rahmen und alle Zellen der Lage 1 stehen auf transparent.
Habe noch einen Monatskalender_2.rtd angehängt. Der Unterschied: Es gibt drei Hintergrundzeichnungen: a) Feiertag, b) Feiertag und ausgewählter Tag, c) ausgewählter Tag. Die Wenn-Formeln in Lage 2 wurde entsprechend aufgebohrt. Der Monatskalender zeigt rot hinterlegt die Feiertage und einen gelben Kreis hinter dem im Eingabefeld eingegebenen Tag.
(Das soll natürlich eine Anwendung illustrieren, die man nicht mit Zellhintergründen erreichen kann.)
Anhang | Größe |
---|---|
Monatskalender.rtd | 40.36 KB |
Monatskalender_2.rtd | 46.09 KB |