Immer wieder Freitag

In WIN 7/97 brachten wir folgende Leserfrage: Eine von mir genutzte Dokumentvorlage soll immer das Datum des letzten aktuellen Freitags tragen. Ich brauche also eine Winword-Funktion, die, egal wann ich die Vorlage öffne, das Datum des letzten Freitags einfügt. Öffne ich die Vorlage an einem Freitag, springt das Datum an diesem Tag um und bleibt bis zum nächsten Freitag darauf stehen. Ist das irgendwie zu machen?

Zu diesem Problem gingen zwei verschiedene Lösungsansätze ein. Thomas Dahlmann aus Meitingen bedient sich zum Errechnen des Freitagsdatums einer Excel-Tabelle und verknüpft das Ergebnis mit der Winword-Vorlage. Vorteil des Verfahrens: Da es sich ausschließlich auf direkte Programmfunktionen bezieht und nicht auf Makrocode zurückgreift, funktioniert es auch einwandfrei mit Winword und Excel 97:
Öffnen Sie Excel, legen Sie in einem neuen, leeren Tabellenblatt den Tabellenbereich an, den Sie unten dargestellt sehen:
Spalte A dient nur der Beschriftung, Sie können sie auch leer lassen. Ebenso optional ist es, den Zellen B2 sowie E2 bis E8 über Format – Zellen – Zahlen – Benutzerdefiniert das Format tttt zu geben. Excel zeigt dann nicht nur die dem Tag zugewiesene Tageszahl, sondern den Tag voll ausgeschrieben an. Diese Formatierungen sind aber eher unwichtig, da Sie später aus Winword per OLE direkt auf die Tabelle zugreifen und sie nicht mehr zu öffnen brauchen.
Haben Sie die Tabelle abgetippt und funktioniert sie korrekt, dann erhalten Sie in Zelle B4 das gewünschte Datum des jeweils letzten Freitags. Markieren Sie diese einzelne Zelle und fügen sie mit [Strg]+[C] in die Zwischenablage ein. Lassen Sie Excel offen, starten Sie nun Winword und setzen die Textmarke in Ihrer Dokumentvorlage dort, wo das Datum erscheinen soll. Rufen Sie dann im Menü den Befehl Bearbeiten – Inhalte einfügen auf. Wählen Sie aus der Liste die Option Unformatierten Text und setzen dann den Schalter links von der Liste auf Verknüpfen. Mit OK fügen Sie das Datum ein. Zum Schluß sichern Sie Ihre Dokumentvorlage und schließen Excel.
Öffnen Sie künftig ein auf dieser Formatvorlage basierendes Winword-Dokument, dann holt sich Winword jedesmal das Datum per OLE aus der Excel-Tabelle, obwohl diese nicht geöffnet ist. Die Aktualisierung läuft dabei automatisch. Voraussetzung ist allerdings, daß Sie den Speicherort der Excel-Tabelle nicht verändern. Wollen Sie dies tun, müssen Sie die OLE-Verknüpfung des Datumsfelds per Zwischenablage wiederholen. Die Tabelle FREITAG.XLS finden Sie schon fertig auf der WIN-Monats-CD und in den WIN-Online-Foren.
Zur Realisierung der Funktion direkt in Winword 6/7 lieferte Steffen Höhne aus Gera die Anregung. In Zusammenarbeit mit WIN-Programmierspezialist Christian Hartnick entstand dieses Wordbasic-Makro:

Sub MAIN¶
Datum = Heute ()¶
Diff = (Datum + 1) Mod 7¶
Datum = Datum - Diff¶
BearbeitenGeheZu .Ziel = ädÆAktualDatÆô¶
BearbeitenLöschen¶
Einfügen Date$(Datum)¶
End Sub¶
Das Makro setzt voraus, daß Sie in Ihre Dokumentvorlage das Datum mit der Funktion Einfügen – Feld – Datum und Uhrzeit – AktualDat übernommen haben. Wollen Sie direkt mit Einfügen – Datum und Uhrzeit arbeiten, ersetzen Sie in Zeile 6 des Makros den Ausdruck AktualDat durch den Ausdruck Zeit. Sie finden das Makro als Textdatei FREITAG.TXT auch auf der aktuellen WIN-Monats-CD und in den WIN-Foren.
Kopieren Sie das Makro in die Zwischenablage und rufen dann in Winword Extras – Makro auf. Damit das Makro bei jedem Laden der Dokumentvorlage automatisch ausgeführt wird, geben Sie ihm den Namen AutoNew. Klicken Sie nun noch auf Erstellen und fügen das Listing aus der Zwischenablage unter der Zeile Sub MAIN ein.