ich benötige mal wieder euren grauen Zellen.
Ich habe den Ordner "Training" in welchem sich (eine Ebene tiefer) weitere Unterordner befinden.
In diesen Unterordnern befinden sich Exceldateien, die miteinander Formelverknüpft sind.
Der gesamte Ordner "Training" mit all seinen Unterordnern und darin befindlichen Dateien benötigen keine Daten von außerhalb - der Ordner "Training" ist so zu sagen autark.
Dachte ich damals: Ich kann dieses geschlossene System überall hinlegen - Irrtum!
Bsp.: vorher: C:/Abteilung_C/Training/...
nachher: C:/Abteilung_C/Unterabteilung_1/Training/...
ihr wisst was ich meine... die Formeln reagierten nicht mit einer Anpassung.
Also musste ich aktiv werden und über Bearbeiten Ersetzen von Hand anpassen.
Das ist viel Arbeit und - da ich nicht der einzige Nutzer bin - KW kenne nur ich und in Excel sind manche Mitarbeiter auch nicht sooo begabt, sodaß sie diesen Prozess vollziehen könnten / wollten. Entschuldigung - lange Rede (war aber nötig).
Die Idee:
Ich habe Bearbeiten Ersetzen per Rekorder aufgezeichnet und diesen Codeschnipsel in mein Workbook open eingefügt.
Private Sub Workbook_open()
Dim strPath As String, strSearch As String
strSearch = "Training"
strPath = ThisWorkbook.Path
strPath = Left(strPath, InStr(1, strPath, strSearch) + Len(strSearch))
On Error GoTo Err
For Each Sheet In ThisWorkbook.Sheets
Sheet.Visible = True
Sheet.Unprotect "KW"
ChDir strPath & "\Basisdaten"
ActiveWorkbook.ChangeLink Name:="AktuellerWorkbook.Path" &"\Training\Basisdaten\Basis.xls", _
NewName:=strPath & "\Basisdaten\Basis.xls", Type:=xlExcelLinks
Sheet.Protect "KW"
Next
...
in Worten ausgedrückt:
bei jedem öffnen einer Einzeldatei die Verknüpfungen enthält vorher per vba alle sheets anzeigen, entsperren, Quelldatei suchen und so die "alten" Formelpfade ersetzen. Im Code oben: "AktuellerWorkbook.Path" irgendwie ersetzen durch einen richtigen Codeteil.
Oder so: Einzeldatei wird geöffnet und egal, wo "Training" liegt, geh zur Verknüpfung nur 1 Ebene höher (dann bist du in "Training") und dann eine Ebene tiefer in einen anderen Ordner wo sich die Quelldatei befindet.
ich hoffe ihr versteht mein Kauderwelsch...
Hat jemand eine Ahnung wie man das realisieren kann oder gar eine bessere Idee für mein Problem?
Danke für jede Hilfe
Gruß
Alex