Hallo,
danke für deine Antwort, aber ich muss leider sagen, dass ich
damit nicht weiter gekommen bin.
Ich habe keinen Autoopen Makro gefunden. Auch die VBA-Hilfe
konnte mir nichts ähnliches zeigen.
Wie funktioniert das denn? Gibt es dafür Quellcode und wie
sieht der aus?
Die Vorlage sieht im Moment so aus, dass sich beim erstellen
eines Dokumentes eine Maske (UserForm) öffnet, in der einige
Eingaben getätigt werden. Diese werden dann an entsprechender
Stelle in den Text gebunden.
Danach soll das Dokument per Hand (oder Makro) gespeichert
werden.
Wenn das Dokument dann später geöffnet wird, soll es garnicht
mehr verändert werden, nur noch zum lesen oder drucken da
sein.
Ich hoffe ich habe mein Vorhaben ausreichend beschrieben und
du kannst mir weiterhefen.
Gruß
Malte
Hallo,
Du kannst ein Makro ja unter jedem beliebigen Namen erstellen/aufzeichnen. Nur eben die Bezeichungnen Autoopen, Autonew (nicht Autoexec) und Autoclose sind sozusagen reserviert und führen entsprechen des Namens die im Makro vorgegebenen Programme aus.
autoopen führt den Programmtext des Makros beim Öffen (open) der Datei aus
autoclose beim Schließen
autonew im Grunde wie autoopen
Das hört sich kompliziert an, ist aber ganz einfach. Du darfst nur nie vergessen, dass das Makro nur in einer, nämlich der aktuellen DOT gespeichert wird.
Der Unterschied:
Du schreibst ein Makro, das eine Eingabe erfordert und dann ein Dokument öffnet, in das die Daten der Eingabe eingefügt werden.
Wenn dies ein Autonew-Makro ist und in der Normal.dot statt in der abc.dot der Datei gespeicht wird, wird bei jedem Aufruf irgend eines Dokumentes (!!) dieses Makro ausgeführt. Das ist eben ein globales Makro. Passiert nicht, wenn das Makro nur in der abc.dot gespeichert ist.
Nun zum technischen:
Du erstellst ein Formular (von einer Maske rate ich ab, benutze doch einfach Formularfelder)
Du erstellst ein Makro, am besten über die Aufzeichnungsfunktion, in dem Du das Formular wie vorgesehen speicherst. Nenn es einfach „speichern“
Im ungeschützten (!) Formular nun ein Doppelklick auf das letzte (!)Formularfeld. In der Dialogbox sollte links unten stehen „Makro ausführen bei“, dann sind da die Felder „Ereignis“ und „Beenden“.
Hier klickst Du in das Feld „Beenden“ und siehst den Vorschlag „speichern“ oder wie Du das Makro genannt hast. Dieses übernimmst Du.
Danach die Vorlage schützen und speichern. Datei schließen.
Wenn Du jetzt über Datei-neu-abc.dot aufrufst und spasseshalber durch alles Formularfelder „hindurchhangelst“ wird nach dem Verlassen des letzten Formularfeldes die abc.dot unter dem gewünschten Namen speichert.
Mit Alt-D-C (2 mal hintereinander) kannst Du das Dokument verlassen.
Beachte bitte, dass nach erneutem Aufruf von abc.dot und dem Ausfüllen die alte Datei überschreiben wird. Falls dies nicht gewünscht wird, muss das speichern-Makro etwas geändert werden.
Gruss
Andreas