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"
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"