Macro um Links zu Dateien zu ändern

kmeleon

Cadet 4th Year
Registriert
Nov. 2007
Beiträge
97
Habe eine Exceldatei in einem Ordner, die sich Daten aus mehreren Dateien in Unterordnern holt. Nun möchte ich den Hauptordner samt Dateien und Unterordner vervielfachen, natürlich mit anderen Ordnernamen (copy+paste im Windows Explorer). Ich erstelle so zig Kopien vom Original.

Leider stimmen dann die Dateilinks nicht mehr, da die Exceldatei denkt, dass die Unterdateien in dem Originalordner liegen. Dazu möchte ich nun ein Macro erstellen, um automatisch die Dateilinks zu ändern. Der Macrorecorder hat mir für den Anfang geholfen, leider reichen meine Kenntnisse nicht aus, um das Macro zu automatisieren. Hier mein Macro bis jetzt:

Sub ChangeLinks()
ChDir _
"C:\Kopie\Unterordner"
ActiveWorkbook.ChangeLink Name:= _
"Q:\Original\Unterordner\DateiB.xlsb" _
, NewName:="DateiB.xlsb", Type:=xlExcelLinks
End Sub

Soweit so gut. Leider ist der Ordnername der Kopie von Fall zu Fall unterschiedlich. Daher wollte ich über die Zelle-Formel den Pfad und Dateinamen in einem gesonderten Tabellenblatt hinterlegen und diesen Wert dann in einer Variable zwischenspeichern. Dann müsste ich nicht 100 Ordnernamen von Hand eingeben.

Mein Versuch (In Zelle B5 steht der Ordnername):

Dim tmp As String
tmp = Workbooks(DateiB.xlsb).Sheets("Sheet1").Range("B5").Text
ChDir _
"tmp"

Nach diesem Schema wollte ich die Datei/Pfadnamen in dem Macro oben ersetzen aber ich bekomme die Fehlermeldung: "Path not found"
 
Ich kapiere da nicht so ganz was du da veranstaltest, aber es mag sein, dass ich da auch völlig in die falsche Richtung denke.

Du möchtest also in der Kopie XY die im Pfad XY gelandet ist alle Pfadangaben in Links in Zellen auf diesen neuen Ordner XY, die neue Struktur XY, anpassen?
Es gibt da eine Rückgabe wie z.B. ActiveWorkbook.Path mit der ich am neuen Ort per Makro ohne Hilfszellen Anpassungen vornehmen kann. Weiter hätte ich mir eine Tabelle mit allen Zielpfaden angelegt und XL selbst das Kopieren und Anpassen aufgehalst.
Da ich nie mit Links arbeite muss ich passen inwiefern relative statt absolute Pfade eingesetzt werden können.

CN8
 
Zurück
Oben