Autor Thema: Word mit VBA Seitenzahl aktualisieren  (Gelesen 7932 mal)

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Word mit VBA Seitenzahl aktualisieren
« am: 27.06.05 - 12:11:38 »
Hallo,

ich erzeuge über eine Wordvorlage ein Dokument. In der Vorlage sind Felder für die Seitenzahlen enthalten. Das erzeugte Worddokument kann je nach Menge der Daten unterschiedlich lang werden. Wenn das füllen des Dokuments abgeschlossen ist sperre ich das Worddokument so das keine Änderungen mehr vorgenommen werden können. Dies funktioniert wunderbar mit "Call Letter.Protect(1,False,"xxxxxx")".
Danach speichere ich und hänge das Dokument in ein Notesdokument.

 
Mein Problem ist jetzt das die Seitenzahl in der Fusszeile nicht aktualisiert werden.
Gebe ich das Dokument über Word am Bildschirm aus stimmen zwar die Seitenzahlen auch nicht diese werden aber dann wenn ich drucke von Word automatisch aktualisiert.

Mit folgenden Codezeilen habe ich schon probiert die Seitenzahlen mit VBA zu aktualisieren leider ohne erfolg.
Call Letter.Sections(1).Footers(wdHeaderFooterFirstPage).Range.Fields.Update
Call Letter.Sections(1).Footers(wdHeaderFooterPrimary).Range.Fields.Update

Vielleicht hat einer ein Idee für mich wie ich dieses Problem lösen kann.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #1 am: 27.06.05 - 13:07:39 »
Hi,

schau mal im Optionen-Dialog von Word auf dem Reiter "Drucken" nach, ob da die Option "Felder aktualisieren" markiert ist. Wenn nicht, setz dort mal den Haken und probiers dann nochmal.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #2 am: 27.06.05 - 13:32:48 »
Das Problem ist es muß mit VBA möglich sein. Da ich das Dokument vor Änderungen schütze bevor es gedruckt wird können die Seitenzahlen nicht mehr aktualisiert werden.


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #3 am: 27.06.05 - 13:39:30 »
Hi,

ich aktualisiere meine Felder mit diesem Script:

...
    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
...

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #4 am: 27.06.05 - 13:52:41 »
Wenn ich deinen Code einfüge bekommen ich zwei Fehlermeldungen beim speichern vom Code.

Unexpected aStory, Expected: =

und

Unexpected aField, Expected: =

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #5 am: 27.06.05 - 14:15:32 »
Hi,

wo hast du denn den Code eingefügt und dast du die beiden Variablen deklariert?
Wie lauten den die genauen Fehlermeldungen. Die du gepostet hast, sehen mir recht unvollständig aus.

Bei mir läuft der Code im AutoOpen-Event des Word-Dokumentes


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #6 am: 27.06.05 - 14:47:35 »
hi,

aso das erklärt warum ich die Fehlermeldungen habe, ich hab den Code in meine LotusScript Bibliothek kopiert.

Das Word-Dokument wird beim erzeugen nicht zur Anzeige gebracht, greift dann überhaupt das AutoOpen - Event.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #7 am: 27.06.05 - 14:56:48 »
Hi,

ich glaube nicht.

Basiert das erstellte Dokument auf einer Vorlage oder wird es frei erzeugt?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #8 am: 27.06.05 - 15:10:46 »
Hi,

über eine Vorlage wird das Dokument erzeugt und wie oben geschrieben vor Änderungen geschützt. Das erzeugte Word-Dokument wird dann in ein Notesdokument eingebunden. Das Notesdokument wird dann im Web zur Ansicht gebracht. Der Benuzter öffnet dann im Web das eingebundene Word-Dokument.

Ich hab jetzt ins AutoOpen dein Script geschrieben. Beim öffnen im Web werde ich jetzt gefragt ob ich das Macro aktivieren will, aber die Seitenzahlen werden nicht aktualisiert.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #9 am: 27.06.05 - 15:50:31 »
Hi,

füge den Code doch mal als eigenständige Prozedur in deine Vorlage ein.

z.B.

Sub FelderAktualisierung

    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

Dann kannst du mit Call Letter.Run "FelderAktualisierung" die Prozedur aus LotusScript aktualisieren.

Eine andere Alternative wäre den Code zu umzubauen, dass er von LotusScript aus über die COM-Schnittstelle die Felder aktualisiert. Wenn ich mir deine Postings so anschaue, dann heißt deine Variable zum Zugriff auf das Word-Dokument Letter.

...

    Dim aStory As Variant
    Dim aField As Variant

    For Each aStory In Letter.ActiveDocument.StoryRanges
   
       For Each aField In aStory.Fields
          aField.Update
       Next aField
   
    Next aStory
...

Ich hab's mal versucht umzubauen, aber ich kann dir nicht versprechen ob'so funktioniert. Ich kann's leider hier nicht testen.

Aber eins verstehe ich nicht, das Aktualisieren der Seitennummerirung funktioniert eigentlich immer problemlos, auch ohne solche Klimmzüge.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Badhei

  • Junior Mitglied
  • **
  • Beiträge: 56
  • Geschlecht: Männlich
Re: Word mit VBA Seitenzahl aktualisieren
« Antwort #10 am: 27.06.05 - 16:11:47 »
Hi,

fast funktioniert es jetzt. Das erzeugte Dokument hat jetzt zum Beispiel 7 Seiten er zeigt aber 8 an. Zuvor hat er mir immer auf der ersten Seite "1 von 5" angezeigt und auf den anderen dann richtig hochgezählt.
Also vorher:
1 von 5
2 von 7
3 von 7
...
7 von 7

jetzt zeigt er an:
1 von 8
2 von 8
...
7 von 8

Der korrekte Aufruf vom Macro aus LS ist Call Letter.Run ("FelderAktualisierung").
Ich werde das jetzt erstmal so lassen. vielen Dank für deine Hilfe. Aber falls Du noch eine Idee immer her damit. :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz