Du könntest ein AddOn schreiben, das das Application-Ereignis Workbook_BeforeSave aufruft und darin eine Speicherung mit dem neuen Pfad hinterlegen. Am Ende dieses Save-Ereignisses setzt du Cancel=True und das ursprüngliche Save wird übersprungen. Aber Achtung! Dies gilt für alle Save-Vorgänge jedweder Art in sämtlichen Workbooks. Du müsstest das dann also mit If auf bestimmte Dateien eingrenzen.
Für den Open-Vorgang sehe ich schwarz. Zwar kannst du auch das Application-Ereignis Workbook_Open verwenden. Dieses wird jedoch erst nach dem Öffnen ausgeführt. Wenn eine Datei oder ein Pfad nicht existieren, bleibt der Code an dieser Stelle stehen und bringt einen Laufzeitfehler, sofern du das nicht bereits im Code mit On Error umgangen hast.
Besser du fügst dich deinem Schicksal und änderst sämtliche Dateien - so viele sollten es hoffentlich nicht sein, die auf diesen Pfad zugreifen - mit Suchen und Ersetzen (Strg+H) ab. Wähle im Menü "Suchen in aktuellem Projekt" um wirklich alle Pfadangaben in allen Modulen der Datei zu erwischen. Den neuen Pfad solltest du, wie bereits von den Vorrednern erwähnt, möglichst nicht mehr fix im Code speichern, sondern in einer im Hintergrund automatisch geöffneten Arbeitsmappe (z.B. ein Addon oder die Persönliche Makroarbeitsmappe) oder in einer Textdatei oder in der Registry oder, oder, oder.
Gruß Mr. K.
|