Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA in Word mit Mergefields/Textformularfeldern

VBA in Word mit Mergefields/Textformularfeldern
Martin
Guten Tag
Hoffe, es kennt sich jemand gut mit Word aus hier im Excel-Forum...
Ich habe ein Word-Template mit Mergefields und Textformularfeldern. Die Mergefields werden beim Öffnen automatisch durch eine andere Applikation (die kann ich nicht ändern) abgefüllt. Ich möchte jetzt, dass das neue Dokument nach diesem Abfüllen geschützt wird und nur noch die Textformularfeldern ausgefüllt werden können.
Ich habe es so versucht:

Private Sub Document_New()
ActiveDocument.Protect Password:="123", NoReset:=False, Type:= _
wdAllowOnlyFormFields
End Sub

Leider lässt dies das Abfüllen der Mergefields nicht mehr zu, da das neue Dokument sofort nach dem Öffnen geschützt wird.....
Besten Dank für Eure Ideen

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA in Word mit Mergefields/Textformularfeldern
16.02.2011 18:12:05
Reinhard
Hallo Martin,
auskennen ist etwas anderes.
Dieses Sub Document_New()
wo steht denn das? Im neu angelegten Dokument sicher nicht, oder doch, wer schreibt das rein?
Stehts in dieser Normal.dot?
Oder gar in einem Klassenmodul in der Normal.dot o.ä.?
Ich würde da so rangehen, prüfen, ob man in Word Ereigniscode benutzen kann, der auf das Change in so einem MergeField, was immer das auch ist, reagiert.
Sobald da durch die Fremdsoftware befüllt wurde, wird da was auch immer geschützt.
Sehr vage, ich weiß, aber huste mal ohne hals *gg*
Gruß
Reinhard
AW: VBA in Word mit Mergefields/Textformularfeldern
17.02.2011 12:14:31
Martin
Hallo Reinhard (und alle anderen)
Danke für Deine Antwort.
Das "Sub Document_New()" ist ein Makro im Template (also der dot-Vorlage). So weit ich verstanden habe (korrigiert mich, wenn falsch), wird das Document_New ausgeführt, sobald ein neues Dokument aus der Vorlage eröffnet wird.....was hier auch geschieht.
Der Ablauf ist folgender:
1.) Benutzer wählt in einer anderen Applikation dieses Word-Template aus.
2.) Aus dem Template wird ein neues Dokument eröffnet
3.) Die Applikation füllt alle Mergefields aus (via einem CSV, doch da kann ich keinen Einfluss drauf nehmen)
4.) Erst jetzt möchte ich das neue Dokument via Makro schützen und nur noch die Textformularfelder durch den Benutzer abfüllen lassen
Mit dem Sub Document_New()-Makro werden jedoch Schritt 3 + 4 getauscht, d.h. zuerst wird das Dokument geschützt und erst dann versucht die Applikation die Mergefields auszufüllen, was natürlich dann nicht mehr geht.....
Ich würde da so rangehen, prüfen, ob man in Word Ereigniscode benutzen kann, der auf das Change in so einem MergeField, was immer das auch ist, reagiert.
Da kenne ich mich leider nicht aus resp. bräuchte nähere Angaben.
Besten Dank für Eure Hilfe.
Martin
Anzeige
AW: VBA in Word mit Mergefields/Textformularfeldern
18.02.2011 17:26:15
Reinhard
Hallo Martin,
mit Ereigniscode meine ich sowas wie hier:
https://www.herber.de/forum/messages/1201384.html
D.h. dort wird auf den Klick in eine Wordtabellenzelle reagiert.
Du hast anscheinend in deinem Dokument viele dieser MergeField-Felder, so wie das:
{ MERGEFIELD Feldname }
bzw.
{ MERGEFIELD «Vorname» }
Jetzt bräuchte man einen Ereigniscode, der z.B. auf die Wertänderung im untersten MergeField reagiert und dann den Dokumentenschutz setzt.
Oder andere Wege, damit Vba "mitkriegt", die Änderungen der MergeField-Felder ist abgeschlossen.
Oder aber man baut oben ein Symbol ein, oder eine Scxhaltfläche im Dokument, auf die man klickt, wenn man weiß das Ändern der mergeField-Felder ist abgeschlossen und der Schutz soll nun gesetzt werden.
Oder man macht das Zeitabhängig, also 2 min nach Öffnung das Dokuments wird der Schutz gesetzt.
Beschreib bitte mal genauer, was da so passiert, beim Öffnen des Dokumentes.
Und welches Programm füllt/ändert da die Felder?
Startest du das Dokument, dann rufst du das andere Programm auf?
Oder ist es umgekehrt, du bist im anderen Programm, das ruft dann das Dokument auf und ändert die Felder?
Oder, oder,...
Gruß
Reinhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge