Zum Inhalt springen

Word 2003 - Kopfzeile automatisch aktualisieren


Unknowen

Empfohlene Beiträge

Hallo,

ich muss folgendes umsetzen: Es soll eine zentrale .doc-Datei geben. Diese enthält Kopfzeile, Fußzeile und 'Ihre Zeichen' (fester Text direkt unter der Kopfzeile). Jeder Benutzer hat mehrere verschiedene Dokumente. Die Benutzer rufen diese auf, ändern den Text ab, drucken und speichern das Dokument ab. Beim nächsten mal öffnen sie das bereits gespeicherte und ändern es wieder ab usw. Es erfolgt also keine digitale Sicherung der Dateien.

Bei der Kopf- und Fußzeile handelt es sich um Text, welcher öfter mal aktualisiert wird.

Jetzt zum Problem: Die Kopf- und Fußzeilen müssen bei jedem Aufruf der Dokumente automatisch aktualisiert werden ... und das ohne jegliche Abfrage für den Benutzer. Wie kann ich das realisieren?

Bin über jede hilfreiche Antwort dankbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Woher soll der Rechner merken wen du anschreiben willst?

Oder geht es um den Absender, weil den kannst du hinterlegen.

Welche Textelemente sollen verändert werden.

Wenn du nur eine Datei haben willst und dann nutzerabhängig den Text anpassen willst kannst du über die Feldfunktionen eine Menge realisieren.

Ich mach dir gerne ein Template wenn du mir ein wenig mehr Infos gibst.

Die allerdings dann eher per PN.

Link zu diesem Kommentar
Auf anderen Seiten teilen

In die Kopfzeile muss ein individueller Text, der öfter mal verändert wird.

Also für die Fußzeile brauche ich die eigene Anschrift (sorry, dass ich das so ungenau formuliert hab). Diese ändert sich zwar i.d.R. nicht, kann aber trotzdem mal vorkommen.

Das einfache inkludieren der Kopf- und Fußzeile konnte ich umsetzen, das Problem ist nur, dass ich nicht herausfinde, wie ich diese beim Öffnen aktualisiere. Über VBA bei "Open"? Aber wie spreche ich die Elemente direkt an, damit ich sie aktualisieren kann?

Wenn das funktioniert, ist es schon mal ziemlich toll; dann bräuchte ich halt noch den Text unter der Kopfzeile 'Ihre Zeichen'. Dieser Text soll auch aus einer zentralen Datei geholt werden und immer aktuell bleiben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann man Textmarken auf zentrale Dokumente verknüpfen? Wenn ja, wie?

Sicher geht dieses über ein Handling der verschiedenen Dokumente und deren eingebeteten Textmarken.

Du kannst mittels VBA objektorientiert Programmieren, also unter bestimmten Bedingungen Textmarken im Zentraldokument auslesen und dann in deinem Dokument an der richtigen Stelle (andere Textmarke) einfügen. Dazu müssen diese Dokuement nur beide geöffnet (aber nicht unbedingt sichtbar) sein.

Wie genau arbeitest du eigentlich? Gibt es Vorlagen für deine Dokumente? Warum macht Ihr es Euch eigentlich so schwer?

(Wäre ne einfache Datenbank für die unterschiedlichen Textpassagen nicht manchmal sinnvoller?)

*Da fällt mir gerade ein, dass ich dieses am Wochenende genauso machen muss, wie du hier beschreibst, also frei wählbare Vorlagentypen mit Übernahme ausgewählter Passagen und Aktualisierung des Benutzers und dem Abspreichern*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie genau arbeitest du eigentlich? Gibt es Vorlagen für deine Dokumente? Warum macht Ihr es Euch eigentlich so schwer?

(Wäre ne einfache Datenbank für die unterschiedlichen Textpassagen nicht manchmal sinnvoller?)

Ich bin noch Azubi (kenn mich deswegen noch nicht so aus :P) und habe den Auftrag so bekommen, dass dieser Kunde mit vielen verschiedenen Dokumenten arbeitet usw. (siehe oben)

Jeder Mitarbeiter hat um die 20 Dokumente, in welchen jeweils anderer Text steht. Dieser Text wird jeweils nur ein bisschen abgeändert. Kopfzeile, Fußzeile und 'Ihre Zeichen' sollen hingegen in allen Dokumenten angezeigt werden - und immer aktuell sein.

Vorlagen gibt es im Prinzip nicht, da immer wieder die bearbeiteten Dateien geöffnet und gespeichert werden.

Sicher geht dieses über ein Handling der verschiedenen Dokumente und deren eingebeteten Textmarken.

Du kannst mittels VBA objektorientiert Programmieren, also unter bestimmten Bedingungen Textmarken im Zentraldokument auslesen und dann in deinem Dokument an der richtigen Stelle (andere Textmarke) einfügen. Dazu müssen diese Dokuement nur beide geöffnet (aber nicht unbedingt sichtbar) sein.

Und wie setzt man das um? Besonders bei der Kopf- und Fußzeile, die muss man ja anders ansprechen, oder? Hört sich nach nem nicht-ganz-so-einfachem Skript an. :o

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat keiner eine Idee, wie ich das umsetzen kann? :( Hab mein Problem nochmal etwas anders formuliert, vielleicht ist es dann ein wenig verständlicher:

Es soll eine zentrale .doc-Datei geben. Diese enthält Kopfzeile und Fußzeile, welche nur aus Text besteht und hin und wieder mal erneuert wird.

Außerdem enthält die zentrale Datei 'Ihre Zeichen' (fester Text direkt unter der Kopfzeile).

Jeder Benutzer hat mehrere verschiedene Dokumente mit obigen Inhalten und unterschiedlichen Texten. Die Benutzer rufen diese auf, ändern den Text ab, drucken und speichern das Dokument ab. Beim nächsten mal öffnen sie das bereits gespeicherte und ändern es wieder ab usw. Es erfolgt also keinerlei digitale Sicherung der Dateien.

Jetzt zum Problem: Die Kopf- und Fußzeilen müssen bei jedem Aufruf der Dokumente automatisch aktualisiert werden ... und das ohne jegliche Abfrage für den Benutzer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vieles (bzw. alles was statisch ist) kann man über eine Verteilung einer normal.dot regeln. Im Loginscript einfach die Master-dot auf die Rechner bügeln.

und das ohne jegliche Abfrage für den Benutzer.
Und woher soll das Programm dann wissen, welche dynamischen Inhalte eingebracht werden sollen? Eine gewisse Interaktion ist doch notwendig.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Vieles (bzw. alles was statisch ist) kann man über eine Verteilung einer normal.dot regeln. Im Loginscript einfach die Master-dot auf die Rechner bügeln.

Mein Problem dabei ist, dass ich für die einzelnen Dokumente (jeder Benutzer hat um die 20) jeweils eine .dot bräuchte, da die Benutzer den Text (unterhalb von 'Ihre Zeichen') bei jedem Aufruf nur ein wenig abändern.

Dieser variable Text ist pro Dokument unterschiedlich und soll beim nächsten Aufruf noch vorhanden sein. Der Rest soll immer aus dem Master-Dokument geholt werden.

Und woher soll das Programm dann wissen, welche dynamischen Inhalte eingebracht werden sollen? Eine gewisse Interaktion ist doch notwendig.

Ähm, da hab ich mich wohl etwas falsch ausgedrückt. Ich meinte: Kopfzeile, Fußzeile und 'Ihre Zeichen' sind IMMER (bei jedem Aufruf) aus dem Master-Dokument zu holen.

Das einzigste, was die Benutzer ändern ist der variable Text (siehe oben).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Verstehe ich dich Richtig, dass immer "Ihr Zeichen" und dann das Kürzel dazu manuell geändert werden müssen?

Dann musst du folgendes machen.

(Wenn dieser Absatz schon nicht geschehen ist, dann das durchführen).

In Word auf dem Client folgende Einstellungen machen:

Unter "Extras" - "Optionen" in den "Benutzerinformationen" ein Initialkürzel oder einen Namen angeben.

Speichern.

Da dies für jeden User anders ist, wäre das eine eimalige Arbeit das einzurichten (oder die Anwender das selbst machen lassen)

Dann in die Fuß- oder Kopfzeile des Masterdokuments gehen, und dort an die entsprechende Stelle

"Einfügen" - "Feld"

und dort in der ComboBox "Benutzerinformationen" auswählen.

Dort kannst du dann das eben erstellte Kürzel oder den Namen einfügen.

Dieser wird dann auch immer automatisch neu gezogen vom jeweiligen Anwender, der das Dokument öffnet.

In dem Felddialog findest du eine ganze Reihe von vorgefertigten Sachen.

Bearbeitet von Ganymed
Link zu diesem Kommentar
Auf anderen Seiten teilen

Verstehe ich dich Richtig, dass immer "Ihr Zeichen" und dann das Kürzel dazu manuell geändert werden müssen?
Leider nein.

Dann musst du folgendes machen.

(Wenn dieser Absatz schon nicht geschehen ist, dann das durchführen).

In Word auf dem Client folgende Einstellungen machen:

Unter "Extras" - "Optionen" in den "Benutzerinformationen" ein Initialkürzel oder einen Namen angeben.

Speichern.

Da dies für jeden User anders ist, wäre das eine eimalige Arbeit das einzurichten (oder die Anwender das selbst machen lassen)

Dann in die Fuß- oder Kopfzeile des Masterdokuments gehen, und dort an die entsprechende Stelle

"Einfügen" - "Feld"

und dort in der ComboBox "Benutzerinformationen" auswählen.

Dort kannst du dann das eben erstellte Kürzel oder den Namen einfügen.

Dieser wird dann auch immer automatisch neu gezogen vom jeweiligen Anwender, der das Dokument öffnet.

In dem Felddialog findest du eine ganze Reihe von vorgefertigten Sachen.

Das bringt mir zwar in diesem Fall nichts, allerdings kann ich das eventuell bei einer anderen Aufgabe gut gebrauchen - danke! :)

Mit 'Ihre Zeichen' ist einfach ein (im Masterdokument) festgelegter Text gemeint. Dieser hat nichts mit den Benutzern zu tun und ist bei jedem Anwender gleich. Deshalb soll dieser Teil ja auch bei jedem Öffnen aus dem Masterdokument geholt werden.

Ich glaube, dass ich gerade so langsam in Richtung Ziel komme. Habe das mit Textmarken gelöst. Funktioniert soweit ganz gut.

ActiveDocument.Fields.Update
Leider funktioniert das mit den Kopf- und Fußzeilen nicht. Die dortigen Textmarken werden nicht aktualisiert. Wie muss man diese ansprechen? Ich habe es z.Z. so probiert:
ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Fields.Update

ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range.Fields.Update

Funktioniert halt wie gesagt leider nicht. :/ Wie kann man Textmarken in Kopf- und Fußzeilen aktualisieren?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht so aus, als wäre ich soeben auf die Lösung dieses Problems gestoßen. :)

Auf dieser Seite wird erklärt, wie man alle Felder (z.B. beim Öffnen des Dokuments) automatisch aktualisieren kann. Funktioniert genau so, wie ich mir das vorgestellt habe. :D

Nur zur Vollständigkeit hier nochmal der entsprechende Code dafür:

Sub AutoOpen()

   Dim aStory As Range

   Dim aField As Field

   For Each aStory In ActiveDocument.StoryRanges

      For Each aField In aStory.Fields

         aField.Update

      Next aField

   Next aStory

End Sub

...trotzdem nochmal ein Dankeschön an alle, die dabei geholfen haben. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 8 Monate später...


Sub AutoOpen()

   Dim aStory As Range

   For Each aStory In ActiveDocument.StoryRanges

      aStory.Fields.Update

   Next aStory

End Sub

...unter meinem Word2003SP2 läuft dieser Code deutlich schneller ab. Bei großen Dokumenten entstanden sonst minutenlange Wartezeiten. Hoffentlich gibt es keine anderweitigen Nebenwirkungen, getestet habe ich es nicht besonders.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...