26831
Goto Top

Word 2003 und Dokumentenvariablen

WENN-DANN-SONST per VBA, da Dokumentenvariablen nicht mehr verfügbar sind, wenn Sie in der WENN-DANN-SONST-Funktion von Serienbriefen enthalten sind.

Hallo zusammen,

(Die eigentliche Frage steht ganz unten)

Infos:
wir nutzen ACT 8 (Kontaktesoftware) und können aus ACT heraus z.B. einen Serienbrief erstellen. Das Wordformular öffnet sich auch und die angelegten Dokumentenvariablen klappen, aber ein Blick in Ansicht->Symbolleisten->Seriendruck bringt Verwunderung.
Dort sind alle Buttons bzgl. Seriendruck deaktiviert, außer "Datenbank anlegen"?!?!
OK...in der Menüleiste oben rechts habe ich einen weiteren Punkt "ACT" und dort gibt es auch den Punkt "Feldliste anzeigen". Es wird mir nun die Leiste angezeigt, wie man sie von der Seriendruckleiste (normalerweise) her kennt.

Ich wähle die Anrede aus und staune: Dort steht nun {DocVariable[ACTFIELD]TBL_CONTACT.SALUTATION}?!?!
Eigentlich bin ich mehr diese Form gewohnt: {MERGEFIELD "Anrede"}

Nun kommt die berühmte Wenn-Dann-Situation ala: {Wenn Anrede = Herr DANN "r Herr" " Frau"}
Das klappt aber nur mit diesen MERGEFIELDS, nicht aber mit diesen DocVariable-Feldern. Fehlermeldung: Objekt wurde gelöscht.

Meine nächste Idee war die Erstellung eines VBA-Scripts bei Document_New():

Code:
strAnrede = ActiveDocument.Variables("[ACTFIELD]TBL_CONTACT.SALUTATION")
if strAnrede = "Herr" than
strAnrede = "r Herr" + ActiveDocument.Variables("[ACTFIELD]TBL_CONTACT.FULLNAME")
und so weiterDie Meldung war dann zwar weg, aber mir wurde grundsätzlich der Eintrag von ELSE (Sehr geehrte Damen und Herren) zurückgeliefert.

Im Direktfenster vom VBA-Editor liefert mir ? ActiveDocument.Variables("[ACTFIELD]TBL_CONTACT.SALUTATION") ein zurück.

Klar...wenn da nicht Herr oder Frau drin steht sondern , dass das Script mit ELSE aussteigt.

Ich habe mein Script aus der ACT-Vorlage ausgeschnitten und in das von ACT neu erstellte Dokument wieder eingefügt und das Dokument gespeicht. Wenn ich dieses Dokument jetzt wieder öffne, dann klappt es!!!

In Word habe ich noch den Script-Editor gefunden und festgestellt, dass die Dokumentenvariablen dort zu finden sind. Man staune: In der Formatvorlage steht bei [ACTFIELD]TBL_CONTACT.SALUTATION tatsächlich .

Ich habe nun einen STOP in mein Script eingebaut und festgestellt, dass zu dem Zeitpunkt, wo mein Script ausgeführt wird, die Dokumentenvariablen von dem ACT-Prog noch NICHT von auf z.B. "Herr" geändert wurden. Also habe ich mir einen Button auf das Dokument gepflanzt mit dem ich mein Script dann nachträglich starten kann und siehe da es funktioniert.

Nun die Frage an Euch:
Wie schaffe ich es mein VBA-Script NACH der Änderung dieser DocumentenVariablen zu starten? Oder wie kann ich ein VBA-Script starten, wenn das Dokument fertig geladen ist?

Stefan

Content-Key: 46211

Url: https://administrator.de/contentid/46211

Printed on: April 25, 2024 at 21:04 o'clock