VBA Word Makro nach öffnen ausführen

SGCGoliath

Lt. Commander
Registriert
Sep. 2006
Beiträge
1.388
Hi Leute

ich sitze an einem Problem und komme nicht weiter.
Ich habe ein Word Dokument, welches von einer externen Software Variablen ausliest.
Dies klappt super über die Funktion "docvariable"
Und in VBA hole ich die Variable so ab:

x = ActiveDocument.Variables("SL.SYS.Benutzerkürzel").Value

Jetzt habe ich das Makro ganz einfach in den Document New Teil kopiert. Leider meldet er nun, dass es diese Variable nicht gibt.
Ist auch logisch, denn erst wenn ich die Fehlermeldung schliesse öffnet sich das Word File und die Variable ist vorhanden.
Ich habe bereits mit sleep, wait, ontime versucht dies zu verzögern, leider wartet dann einfach mit allem.

Gibt es eine Möglichkeit ein Marko erst zu starten, wenn Word und das File komplett geladen sind?
 
Mit dem Makro selbst dem zu Beginn den (unmittelbaren) Ladebefehl oder einen Ladedialog spendiert?

Bei mir läge das Makro in einer «Symbolleiste» [der Normal.Dotm]. Datei aufmachen, da drauf klicken - erledigt.

Oder, ich kapiere die Verhältnisse nicht, in das Dokument das die Variable ausliest (wie macht es das?!? im Sinne von: was löst die Aktion aus) kommt ein Auto-Open Makro das die Sache erledigt.

CN8
 
Ja als Marko in der Symbolleiste würde es funktionieren.
Jedoch schreibt das Marko nur die Benutzerinitialen in ein Feld, dafür einen Button erstellen ist OP.
Da kann man auch gleich die drei Buchstaben von Hand eingeben.

Deine erste Frage verstehe ich nicht.
 
Das muss ein echt komplexes Makro sei, 3 Buchstaben einzufügen. ich bin geplättet.

Du musst verinnerlichen wie Makros funktionieren und wie sie gehandhabt werden.
(A) das Makro wird in der Normal.Dotm abgelegt. Damit ist es für alle offenen Dokumente verfügbar. Und über den Button (Schaltfläche) in der Symbolleiste am einfachsten errichbar.
(B) was wohl hier nicht greifen wird/soll/kann: das Dokument selbst beinhaltet das Makro (damit muss es da auch erst mal hin) und ein Auto-Start von Makros löst es aus um sein Tun zu verrichten.

Ich bleibe bei meinem Button weil ich das so verstehe, dass beliebige neue Dokumente von dem Makro profitieren. z.B. Cursor positionieren und ab da die 3 Buchstaben einfüllen - denn das Makro müsste wissen wo es loslegen soll, und einen »Anker« zu verorten ist so einfach nicht. Oder können wir sicher sein, dass da immer ein Feld mit einem bestimmten Namen anzusteuern ist?


Mein erster Satz ist in der Tat verunglückt. Tut mir leid.
Gemeint war der Autostart eines Makros - in dem Dokument selbst. Wie gesagt, nicht recht logisch. Ladedialog meinte: ein Makro starten mit dem ich (über einen Dialog) das entsprechende Dokument lade um gleich daran tätig zu werden. In dem Sinne eine Frage der Handhabung.

CN8
 
Pfusch am Bau :D

CN8
 
Klar kann ich die Meldung unterdrücken, nur bricht dann das Marko ohne Fehlermeldung ab.
 
Zurück
Oben