Wie (etliche) externe Bezüge ändern?

Hallo,

neues Notebook, neues Glück!
Ich habe von meinem alten Laptop (mit Windows XP) jetzt alle meine (Excel-)Daten auf den neuen Rechner mit (Windows Vista) übertragen - allerdings unter einem anderen kürzeren Pfad (Ordnerstruktur)!

alt: C:\Dokumente und Einstellungen\Finus\ *Eigene Dateien* Daten…
neu: C:\ Eigene Dateien \Daten…
d.h. ab **Eigene Dateien**… ist der Bezug wieder identisch.

Beim Öffnen der Exceldateien mit diesen externen Bezügen kommen jetzt natürlich Fehlermeldungen.

Frage 1: Wie finde und ersetze ich diese Bezüge schnell und sicher?
a) Durch den Dialog beim Öffnen der Datei? oder
b) durch Bearbeiten/Gehe Zu Bezug? oder
c) durch Bearbeiten/Verknüpfungen bearbeiten?
d) durch manuelles Suchen/Ersetzen

 ersetze "C:\Dokumente und Einstellungen\Finus\"
 durch "C:\"

Darüberhinaus meckert Excel beim Öffnen der Dateien mit ext. Bezügen auch noch eckige Klammern an.
Fehlermeldung: „Einige Arbeitsblätter in dieser Arbeitsmappe enthalten Namen, die eckige Klammern [] enthalten. Um unerwartete Resultate bei Verweisen auf diese Arbeitsblätter zu verhindern, sollten die eckige Klammern aus den Namen entfernt werden.“

Frage 2: Liegt das an Vista oder was könnte da die Ursache sein?

Ach ja, es sind ca. 20 Dateien pro Jahr und das für 13 Jahre

Finus

Hallo Finus,

alt: C:\Dokumente und Einstellungen\Finus*Eigene
Dateien*
Daten…
neu: C:\ Eigene Dateien \Daten…
d.h. ab **Eigene Dateien**… ist der Bezug
wieder identisch.

Beim Öffnen der Exceldateien mit diesen externen Bezügen
kommen jetzt natürlich Fehlermeldungen.

Frage 1: Wie finde und ersetze ich diese Bezüge schnell und
sicher?
a) Durch den Dialog beim Öffnen der Datei? oder
b) durch Bearbeiten/Gehe Zu Bezug? oder
c) durch Bearbeiten/Verknüpfungen bearbeiten?
d) durch manuelles Suchen/Ersetzen

? Meinst du die Varianten sind sehr schnell wenn du damit 260 Dateien abändern willst?
Wie wärs mit Vba?

Oder (ungetestet) in einer Datei, mit Str+# die Formeln anzeigen lassen, dann mit Suchen–Ersetzen…

Du müßtest ja in etwa wissen wo du überall in den Dateien Verknüpfungen versteckt hast, gibt da 6-7 Orte, schau mal in die FAQ, ob da was zutreffen könnte.

Darüberhinaus meckert Excel beim Öffnen der Dateien mit ext.
Bezügen auch noch eckige Klammern an.

Welche Excelversion, 2007 ?

Fehlermeldung: „Einige Arbeitsblätter in dieser Arbeitsmappe
enthalten Namen, die eckige Klammern [] enthalten. Um
unerwartete Resultate bei Verweisen auf diese Arbeitsblätter
zu verhindern, sollten die eckige Klammern aus den Namen
entfernt werden.“

Nohc nie gehabt, hat aber nix zu sagen, da ich seltenst Dateien mit Verknüfungen habe, google mal nach der exakten Fehlermeldung…

Gruß
Reinhard

Hallo Reinhard,

erstmal vielen Dank für deine schnelle Antwort.
Meine Excelversion ist Excel 2003 SP3.

Wie wärs mit Vba?

Ja, manuell geht das bestimmt nicht sehr schnell,
aber bis ich einen VBA-Kurs gemacht habe, das dauert auch…

Oder (ungetestet) in einer Datei, mit Str+# die Formeln
anzeigen lassen, dann mit Suchen–Ersetzen…

DAS ist doch mal eine interessante Tastaturkombination, die mir nicht geläufig war, aber die ich sofort nutzen konnte.

Du müßtest ja in etwa wissen, wo du überall
in den Dateien Verknüpfungen versteckt hast

Nein, das ist ja gerade das Problem, dass es pro Datei ca. 15 Blätter gibt und ich quasi blätterübergreifend suchen müsste, da ich nicht weiß in welchem Blatt ein externer Link enthalten ist!!!
Ich habe jetzt bei Herber das ADD-In „findlink“ gefunden und lass es so laufen, dass es die ext. Links nur auflistet und nicht gleich löscht.
Mal sehen, wie weit ich da komme, muss ja nicht alle Jahre bis 1995 zurück an einem Tag machen.

Die Fehlermeldung mit der eckigen Klammer suche ich mal mit Google.

Gruß Finus

Hallo Finus,

Meine Excelversion ist Excel 2003 SP3.

aha, da ich die Fehlermeldung noch nie las dachte ich an 2007.

Wie wärs mit Vba?

Ja, manuell geht das bestimmt nicht sehr schnell,
aber bis ich einen VBA-Kurs gemacht habe, das dauert auch…

? ich meinte damit soll ich dir Vba-Code schreiben der das macht.

Zu Kursen/Schulungen sach ich nur, damit wird viel Geld sinnlos verpulvertgut angelegt in das Wissen der Mitarbeiter.

Du müßtest ja in etwa wissen, wo du überall
in den Dateien Verknüpfungen versteckt hast

Nein, das ist ja gerade das Problem, dass es pro Datei ca. 15
Blätter gibt und ich quasi blätterübergreifend suchen müsste,
da ich nicht weiß in welchem Blatt ein externer Link enthalten
ist!!!

Du hast mich nicht verstanden, mit „Verstecken“ meinte ich nicht paar Blätter, nein, ich meinte damit, hast du Verknüfungen zu aneren Dateien in Diagrammen, Namen o.ä, versteckt.

Ich habe jetzt bei Herber das ADD-In „findlink“ gefunden und
lass es so laufen, dass es die ext. Links nur auflistet und
nicht gleich löscht.

Ich kenne (vor Jahren mal den Code angeschaut) die findlinks.xla von Hans, ich kann sie locker umschreiben daß sie dann alle Verknüpfungen in deinem Sinne, also Pfadänderung, abändert.

Zu der Fehlermeldung mit den eckigen Klammern mußt du echt mal googeln.

Das einzige was ich dir da anbieten kann, bring mal 2-3 Beispiele mit Pfaddatei-Namen wo das passiert,
bzw,
kompletten Verknüpfungsnamen.

Achja, bevor du das machst, schick mal die Datei an einen Vertruten deiner Wahl, der kein Vista hat, um das mit Vista auszuschließen.

Gruß
Reinhard

Hallo Reinhard,

ich meinte damit soll ich dir Vba-Code schreiben der das macht.

oh ja, das wäre sehr nett von dir!

Du hast mich nicht verstanden, mit „Verstecken“ meinte ich
nicht paar Blätter, nein, ich meinte damit, hast du
Verknüfungen zu aneren Dateien in Diagrammen, Namen o.ä,
versteckt.

ja, findlink hat auch in Diagrammen was angezeigt, das ist aber nicht so wichtig, die paar Diagramme kann ich neu machen, wichtig sind eigentlich nur die ext. Links in den Excel-Zellen.

Ich habe jetzt mit „findlink“ sechs Dateien mit je 10 Blättern manuell durchgemacht.
Du hast recht, es ist sehr mühsam.
Das einzige, was gut daran ist, dass „findlink“ eben über alle Blätter sucht und ich nicht jedes Blatt einzeln durchsuchen muss.

Das müsste ja dein dein VBA-Code auch können, alle Blätter zu durchsuchen, ohne sie namentlich zu kennen.

schick mal die Datei an einen Vertruten deiner Wahl,
der kein Vista hat, um das mit Vista auszuschließen.

Der Vertrute wäre in diesem Falle ich selbst, da der Laptop mit Windows XP genau neben dem Laptop mit Windows Vista auf meinem Schreibtisch steht.
Nur auf dem alten Laptop habe ich Excel 2000 Vers. 9 installiert.
Bei dem (alten PC) tritt die Fehlermeldung nicht auf.
Gruß Finus

externe Bezüge listen/ändern?
Hallo Reinhard,

damit alle was davon haben, frage ich also jetzt in w-w-w nach.

Was ich bräuchte, wäre folgendes:

Sparvariante:
alle externen Verknüpfungen in meinen Excel-Dateien, die z.B. mit „C:\Dokumente und Einstellungen“ beginnen, in einer Liste auflisten unter Nennung des Pfades, des Dateinamens, des Blattes und der Zelladresse.

Luxusvariante:
dann pro aufgelisteter Verknüpfung eine Art Häkchenbox, wo man dann sagen kann, alle angekreuzten sollen umgewandelt werden auf den neuen Pfad.

Das Ganze für alle meine xls-Dateien in einem anzugebenden Pfad (z.B. C:\Eigene Dateien\Daten\Tabellen … oder so).

Man könnte auch an eine Beschränkung auf max. 20 oder 50 Dateien/Fundorte nachdenken, damit die Liste überschaubar bleibt.

Ich hoffe, alles beschrieben zu haben, damit du das hinkriegst.
Bei Problemen soll das VBA definiert mit einer entsprechenden Meldung abbrechen, z.B. bei Dateien, die Öffnungspasswörter haben, oder Vba-Code der beim Öffnen der Datei losläuft.

Gruß Finus

Suchen + Ersetzen = '‚STRG + H‘
Hi !

wie wäre es denn einfach mit „Strg + H“?

Du markierst das gesamte Arbeitsblatt, drückst „Strg + H“ schreibst oben den alten Datenpfad bis „Eigene Dateien“ und unten den neuen Datenpfad bis „Eigene Dateien“ und drückst anschließend „Alle ersetzen“.

Sicherheitshalber vorab einfach mal mit einer Kopie testen

BARUL76

Hallo barul,
Danke für deinen Tipp.

wie wäre es denn einfach mit „Strg + H“?

Du markierst das gesamte Arbeitsblatt, drückst „Strg + H“
schreibst oben den alten Datenpfad bis „Eigene Dateien“ und
unten den neuen Datenpfad bis „Eigene Dateien“ und drückst
anschließend „Alle ersetzen“.

Ja, so mache ich es momentan, nur ist das bei insgesamt 1.284 Excel-Dateien, von denen ca. 260 so einen externen Bezug haben, sehr mühsam und auch nicht effektiv.

Das eigentliche Problem ist, erstmal alle diese Dateien, die externe Bezüge haben zu finden und in eine Liste zu schreiben, um dann diese Liste irgendwie (und sei’s mit STRG + H) abzuarbeiten.

Verstehste?

Gruß Finus

Hallo Finus,

Sparvariante:
alle externen Verknüpfungen in meinen Excel-Dateien, die z.B.
mit „C:\Dokumente und Einstellungen“ beginnen, in einer Liste
auflisten unter Nennung des Pfades, des Dateinamens, des
Blattes und der Zelladresse.

probier mal das, siehe abder vorher was ich unten schrieb zu Makros:

Sub Verknuepft2()
Dim Zei As Long, wksZ As Worksheet, fs As FileSearch, F As Long, LS
'On Error Resume Next
Set fs = Application.FileSearch
Set wksZ = ThisWorkbook.Worksheets("Tabelle1")
With wksZ
 .UsedRange.ClearContents
 .Cells(1, 1) = "Dateiname"
 .Cells(1, 2) = "Verknüpfung"
End With
Zei = 1
With fs
 .NewSearch
 .LookIn = "c:\"
 .SearchSubFolders = True
 .Filename = "\*.xls"
 If .Execute() \> 0 Then
 'MsgBox "There were " & .FoundFiles.Count & " file(s) found."
 For F = 1 To .FoundFiles.Count
 If .FoundFiles(F) ThisWorkbook.FullName Then
 Workbooks.Open Filename:=.FoundFiles(F), updatelinks:=0, ReadOnly:=True
 If Not IsEmpty(ActiveWorkbook.LinkSources) Then
 For Each LS In ActiveWorkbook.LinkSources
 Zei = Zei + 1
 wksZ.Cells(Zei, 1) = ActiveWorkbook.FullName
 wksZ.Cells(Zei, 2) = LS
 Next LS
 End If
 ActiveWorkbook.Close savechanges:=False
 End If
 Next F
 End If
End With
Weiter:
End Sub

Bei Problemen soll das VBA definiert mit einer entsprechenden
Meldung abbrechen, z.B. bei Dateien, die Öffnungspasswörter
haben, oder Vba-Code der beim Öffnen der Datei losläuft.

Da hänge ich bei mir noch fest, ich habe in (XL2000) Extras–Makro–Sicherheit die Sicherheitsstufe auf „Hoch“ gesetzt, normal dürften da keine Startmakros loslaufen wenn ich Dateien öffne, das machen sie abder doch. Weiß noch nicht wodran das liegt.

Gruß
Reinhard