Aktualisieren eine NumPages-Feldes per Makro

Hallo Leute

Ich verzweifel schön langsam mit diesem Drecks-Word. So nebenbei: ich habe Word 2003 SR2 auf Windows XP SP2. Und zwar schaffe ich es nicht, per Makro NumPages-Felder im Dokumente sauber zu aktualisieren, sobald DocVariable-Felder im Dokument vorkommen und mit dem selben Makro aktualisiert werden sollen.

Hintergrund: Eine externe Anwendung stellt Daten in einer Datei zur Verfügung. Mein Makro liest diese Daten aus und befüllt damit Dokumentvariablen. Diese werden über DocVariable-Felder im Dokument angezeigt. Am Ende des Makros werden alle DocVariable-Felder aktualisiert, damit der aktuelle Inhalt angezeigt wird.

Nun habe ich versucht, zusätzlich NumPages-Felder einzubauen, weil in manchen Fällen die Anzahl der Seiten benötigt wird. Hier mein Code zum aktualisieren der Felder:

Dim Feld as Fields

for each feld in activedocument.fields
 if feld.type = wdfielddocvariable or feld.type = wdfieldnumpages then
 feld.update
 end if
next

Denkste: kommt das NumPages-Feld nicht vor den DocVariable-Feldern im Dokument vor, wird es nicht aktualisiert. Durch Aufteilen der Schleife auf zwei Teile, also einmal die DocVariable-Felder und einmal die NumPages-Felder aktualisieren, habe ich es zumindest geschafft, das erste NumPages-Feld zu aktualisiere, egal an welcher Position im Dokument. Aber die anderen NumPages-Felder werden weiterhin nicht aktualisiert. Habs auch schon mit einem ActiveDocument.Fields.Update probiert - ebenfalls ohne Erfolg. Habe den Code schon auf alle möglichen Arten modifiziert und mitgetraced - das Makro aktualisiert immer nur das erste NumPages-Feld.

Natürlich kann man mit strg-a und f9 auch die Felder aktualisieren. Die Leute vergessen das aber hin und wieder und die Anzahl der Seiten im Dokument ist teilweise für das Dokument extrem wichtig (hat rechtliche Gründe). Automatisches Aktualisieren beim Drucken ist auch nicht, da die Dokumente vollelektronisch vearbeitet und im Optimalfall niemals gedruckt werden.

Noch eine Randbedingung: Mein Makro wird automatisiert von ausserhalb von Word aufgerufen. Der Benutzer kann in diesen Vorgang nicht eingreifen. Anschließend ist das Dokument schreibgeschützt und es sind keine Änderungen am Dokument mehr möglich. Alle Lösungen, die eine Benutzerinteraktion in welcher Form auch immer erfordern, scheiden damit aus.

Kennt jemand das Problem und vor allem eine Abhilfe? Ich habe jetzt schon genug Zeit damit vertan…

LG
Erwin

PS: Und NEIN, Umstieg auf eine andere Software ist leider keine Option.

Hallo Erwin,

Ich verzweifel schön langsam mit diesem Drecks-Word. So
nebenbei: ich habe Word 2003 SR2 auf Windows XP SP2. Und zwar
schaffe ich es nicht, per Makro NumPages-Felder im Dokumente
sauber zu aktualisieren, sobald DocVariable-Felder im Dokument
vorkommen und mit dem selben Makro aktualisiert werden sollen.

Man kann es zwar schon so deuten, aber ich will es ganz genau wissen, wenn keine DocVariablen vorhanden sind, aktualisiert das Makro diese NumPage-Felder problemlos?

Hintergrund: Eine externe Anwendung stellt Daten in einer
Datei zur Verfügung. Mein Makro liest diese Daten aus und
befüllt damit Dokumentvariablen. Diese werden über
DocVariable-Felder im Dokument angezeigt. Am Ende des Makros
werden alle DocVariable-Felder aktualisiert, damit der
aktuelle Inhalt angezeigt wird.

Nun habe ich versucht, zusätzlich NumPages-Felder einzubauen,
weil in manchen Fällen die Anzahl der Seiten benötigt wird.
Hier mein Code zum aktualisieren der Felder:
Denkste: kommt das NumPages-Feld nicht vor den
DocVariable-Feldern im Dokument vor, wird es nicht
aktualisiert. Durch Aufteilen der Schleife auf zwei Teile,
also einmal die DocVariable-Felder und einmal die
NumPages-Felder aktualisieren, habe ich es zumindest
geschafft, das erste NumPages-Feld zu aktualisiere, egal an
welcher Position im Dokument. Aber die anderen NumPages-Felder
werden weiterhin nicht aktualisiert. Habs auch schon mit einem
ActiveDocument.Fields.Update probiert - ebenfalls ohne Erfolg.
Habe den Code schon auf alle möglichen Arten modifiziert und
mitgetraced - das Makro aktualisiert immer nur das erste
NumPages-Feld.

Kannst du eine Doc-datei mit einigen DocVariablenfeldern, einigen NumPage-Feldern basteln, die dein(e) Makro(s9 enthält, die a) die DocVariablen ändern, aktualisieren, dann die NumPage-Felder versuchen zu aktualisieren, so daß man die Problematik vor sich sieht.?
Hochladen bei www.Hostarea.de o.ä.

Natürlich kann man mit strg-a und f9 auch die Felder
aktualisieren.

Ja, das ist auch der Tipp von MS:

http://support.microsoft.com/kb/835227/de

und du sollst SP1 installieren *gg*

Die Leute vergessen das aber hin und wieder und
die Anzahl der Seiten im Dokument ist teilweise für das
Dokument extrem wichtig (hat rechtliche Gründe).

Kann man nicht per Makro Strg+A und F9 „ans/ins“ Dokument schicken?

Automatisches Aktualisieren beim Drucken ist auch nicht, da die
Dokumente vollelektronisch vearbeitet und im Optimalfall niemals
gedruckt werden.

Wäre denn ein automatisches Aktualisieren beim Drucken die Lösung? Dann druck doch in eine Datei und lösche die anschließend durch das Makro.

Noch eine Randbedingung: Mein Makro wird automatisiert von
ausserhalb von Word aufgerufen. Der Benutzer kann in diesen
Vorgang nicht eingreifen. Anschließend ist das Dokument
schreibgeschützt und es sind keine Änderungen am Dokument mehr
möglich. Alle Lösungen, die eine Benutzerinteraktion in
welcher Form auch immer erfordern, scheiden damit aus.

Aber du schreibst das Makro oder wer? Ein Word-Makro?
Dann steuerst du doch den Schreibschutz, Benutzeraktivitäten usw.

Diese NumPage-Felder, kann man da auch Textboxen aus der Steuerelemttoolbox nehmen?

Kennt jemand das Problem und vor allem eine Abhilfe?

Nein. War alles nur spontanes Brainstorming.

Gruß
Reinhard