Mit VBA Makrosicherheit ändern
Problem: Verändern der Makrosicherheit der geöffneten Word-Datei mit VBA ??
(oder löschen des laufenden Makros ??)
Die Aufgabenstellung ist folgende:
Mit einem Makro wird bewirkt, daß Anwender, die nicht fit sind in Windows ihre Dokumente in einheitlicher Form (Dateinamen) ins richtige Verzeichnis speichern, wo sie später weiter bearbeitet werden können.
Lösung, so weit ich gekommen bin:
Das Dokument wird geöffnet. Mit InputBox() werden in Autoopen() 2 Informationen abgefragt (Schreiber bzw. Topic und das Datum, das im Dateinamen erscheinen soll).
Diese Daten werden auch ins Dokument übernommen (weil sie da gebraucht werden)
Dann wird das Dokument sofort mit Ursprungsnamen, ergänzt um die beiden Informationen, ins Zielverzeichnis gespeichert. Jetzt steht es für weitere Bearbeitung zur Verfügung.
Das Ausgangsdokument bleibt unverändert.
Problem, noch nicht gelöst:
Beim Öffnen der erzeugten Datei startet Autoopen() logischerweise wieder. Das ist überflüssig, und wenn die Anwender nicht sofort "Abbrechen" anklicken, besteht die Gefahr die alten Werte zu überschreiben.
Also möchte ich, daß Autoopen in der zweiten Datei
- entweder nicht mehr ausgeführt wird ( wenn das irgendwie geht)
- oder verschwindet. (Es schadet nichts, wenn das Makr jetzt abbricht. Hauptsache, die Anwender landen im Word-Dokument)
Gibts da eine Lösung?
mtiebler
(oder löschen des laufenden Makros ??)
Die Aufgabenstellung ist folgende:
Mit einem Makro wird bewirkt, daß Anwender, die nicht fit sind in Windows ihre Dokumente in einheitlicher Form (Dateinamen) ins richtige Verzeichnis speichern, wo sie später weiter bearbeitet werden können.
Lösung, so weit ich gekommen bin:
Das Dokument wird geöffnet. Mit InputBox() werden in Autoopen() 2 Informationen abgefragt (Schreiber bzw. Topic und das Datum, das im Dateinamen erscheinen soll).
Diese Daten werden auch ins Dokument übernommen (weil sie da gebraucht werden)
Dann wird das Dokument sofort mit Ursprungsnamen, ergänzt um die beiden Informationen, ins Zielverzeichnis gespeichert. Jetzt steht es für weitere Bearbeitung zur Verfügung.
Das Ausgangsdokument bleibt unverändert.
Problem, noch nicht gelöst:
Beim Öffnen der erzeugten Datei startet Autoopen() logischerweise wieder. Das ist überflüssig, und wenn die Anwender nicht sofort "Abbrechen" anklicken, besteht die Gefahr die alten Werte zu überschreiben.
Also möchte ich, daß Autoopen in der zweiten Datei
- entweder nicht mehr ausgeführt wird ( wenn das irgendwie geht)
- oder verschwindet. (Es schadet nichts, wenn das Makr jetzt abbricht. Hauptsache, die Anwender landen im Word-Dokument)
Gibts da eine Lösung?
mtiebler
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121342
Url: https://administrator.de/forum/mit-vba-makrosicherheit-aendern-121342.html
Ausgedruckt am: 11.01.2025 um 04:01 Uhr
5 Kommentare
Neuester Kommentar
Hallo mtriebler!
Dann füge doch einfach in Autoopen einen Test ein, der prüft, ob das Document bereits eine Dateinamenserweiterung enthält.
So in der Art:
Gruß Dieter
Dann füge doch einfach in Autoopen einen Test ein, der prüft, ob das Document bereits eine Dateinamenserweiterung enthält.
So in der Art:
if IsDate(Right(ThisDocument.Name, 10)) Then Exit Sub
Gruß Dieter
Möglichkeit 1:
Überprüfe im Sutoopen ob der Dateiname dem Namen der Vorlagendatei entspricht. Wenn nicht wird das Makro beendet.
Möglichkeit2:
Die informationen wirst du ja dneke ich, wenn sie auch im Dokument verwendet werden sollen, wahrhscienlich in Feldern hinterlegen (wenn dem nicht so ist gib bescheid). Du musst also nur in der Autoopen funktion diese Felder abfragen und kontrollieren ob ihnen bereits Werte zugewiesen wurden. Wenn ja wird das Makro beendet.
Überprüfe im Sutoopen ob der Dateiname dem Namen der Vorlagendatei entspricht. Wenn nicht wird das Makro beendet.
Möglichkeit2:
Die informationen wirst du ja dneke ich, wenn sie auch im Dokument verwendet werden sollen, wahrhscienlich in Feldern hinterlegen (wenn dem nicht so ist gib bescheid). Du musst also nur in der Autoopen funktion diese Felder abfragen und kontrollieren ob ihnen bereits Werte zugewiesen wurden. Wenn ja wird das Makro beendet.
Hallo mtriebler!
Das könntest Du mit Like sehr einfach überprüfen z.B.:
(#) steht für einen x-beliebigen numerischen Wert. Das Format entsprechend anpassen.
Gruß Dieter
Das könntest Du mit Like sehr einfach überprüfen z.B.:
If ThisDocument.Name Like "*##.##.####*" Then Exit Sub |
(#) steht für einen x-beliebigen numerischen Wert. Das Format entsprechend anpassen.
Gruß Dieter