Supportnet / Forum / Tabellenkalkulation
Hyperlinks automatisch ändern
Frage
Hi ... wäre schön wenn ihr mir helfen könntet.
bin ein excel newbie, habe aber hier ein excel dokument (bzw mehrere) mit um die 5000 hyperlinks. diese verweisen auf einen pfad, der aber geändert wurde. Alle hyperlinks wurden NICHT als formel oder mit der "hyperlinksbasis" (Datei > eigenschaften) erstellt.
nun die frage, wei kann ich die am effektivsten ändern? Makro? wenn ja ich habe keine ahnung wie ich eines schreiben soll.
ich zähle auf euch, thx schonmal
Antwort 1 von Guenter
Hallo nexus,
wenn es sich bei den Hyperlinks um Pfadangaben handelt und diese gleich sind, kannst Du doch mit Suchen/Ersetzen den neuen Pfad eintragen lassen.
Wenn das nicht geht, nochmals melden.
Gruß
Günter
wenn es sich bei den Hyperlinks um Pfadangaben handelt und diese gleich sind, kannst Du doch mit Suchen/Ersetzen den neuen Pfad eintragen lassen.
Wenn das nicht geht, nochmals melden.
Gruß
Günter
Antwort 2 von nexus
danke günther für deinen tipp, aber bei den Hyperlinks handelt es sich nicht um pfadangaben, sonder um einen Text, der dann in einen hyperlinkumgewandelt wurde, also der pfad "dahinter" steht. damit greift leider auch das "suchen/ersetzen" nicht mehr ...
ich habe auch mittlerweile nochmal ein bisschen rumgeschaut, aber noch keien Lösung gefunden.
mfg
nex
ich habe auch mittlerweile nochmal ein bisschen rumgeschaut, aber noch keien Lösung gefunden.
mfg
nex
Antwort 3 von Guenter
Hallo nexus,
ich habe mich nochmals schlau gemacht.
Es gibt die Möglichkeit mit einem Makro die Hyoerlinks zu ändern.
Das ist ein Beipielmakro, bei dem alle Hyperlinks in der ersten Spalte in c:\excel\datei.xls geändert werden.
Das sollte jetzt noch an Deine Anwendung angepast werden.
Wenn Du nicht weiter kommst, nochmals melden.
Gruß
Günter
ich habe mich nochmals schlau gemacht.
Es gibt die Möglichkeit mit einem Makro die Hyoerlinks zu ändern.
Sub Hyperlinks_aendern()
Dim n As Integer
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(n, 1).Hyperlinks(1).Address = "c:\excel\Datei.xls"
Next n
End Sub
Das ist ein Beipielmakro, bei dem alle Hyperlinks in der ersten Spalte in c:\excel\datei.xls geändert werden.
Das sollte jetzt noch an Deine Anwendung angepast werden.
Wenn Du nicht weiter kommst, nochmals melden.
Gruß
Günter
Antwort 4 von nexus
danke, das habe ich sogar mal verstanden ;), aber ich habe trotzdem noch eine frage:
bei diesem makro werden doch alle hyperlinks dann auf nur diese eine datei umgeschrieben, oder? aber jeder hyperlink soll auf eine andere datei verweisen. dabei haben sich die namen der zieldateien nicht geändert, sondern nur der pfad dahin, also, der alte link war zum beispiel:
\\server\pfad\DATEINAME wobei der dateiname gleichgeblieben ist
der neue link soll dann zB lauten:
\\server-2\pfad-2\DATEINAME
gibt es denn eine möglichkeit den vorderenteil quasi "abzuschneiden" (\\server\pfad\) und durch \\server-2\pfad-2\ zu ersetzen?
ich hab probleme was? :-)
wäre dir über deine hilfe aber sehr verbunden
mfg nexus
bei diesem makro werden doch alle hyperlinks dann auf nur diese eine datei umgeschrieben, oder? aber jeder hyperlink soll auf eine andere datei verweisen. dabei haben sich die namen der zieldateien nicht geändert, sondern nur der pfad dahin, also, der alte link war zum beispiel:
\\server\pfad\DATEINAME wobei der dateiname gleichgeblieben ist
der neue link soll dann zB lauten:
\\server-2\pfad-2\DATEINAME
gibt es denn eine möglichkeit den vorderenteil quasi "abzuschneiden" (\\server\pfad\) und durch \\server-2\pfad-2\ zu ersetzen?
ich hab probleme was? :-)
wäre dir über deine hilfe aber sehr verbunden
mfg nexus
Antwort 5 von Guenter
Hallo nexus,
ich hoffe, es funktioniert hiermit:
Es ist klar, dass Du noch entsprechend den richtigen Pfad eingeben musst.
Gruß
Günter
ich hoffe, es funktioniert hiermit:
Option Explicit
Sub Hyperlinks_aendern()
Dim n As Integer
Dim hlink As String
Dim datei As String
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
hlink = Cells(n, 1).Hyperlinks(1).Address
datei = Mid(hlink, 15, Len(hlink) - 14)
Cells(n, 1).Hyperlinks(1).Address = "\\server-2\pfad-2\" & datei
Next n
End Sub
Es ist klar, dass Du noch entsprechend den richtigen Pfad eingeben musst.
Gruß
Günter
Antwort 6 von nexus
ah danke, sieht gut aus, aber hab nur noch eine verständnis frage:
Welche zeile bewirkt das der vordere teil des pfades abgeschnitten wird? ich vermute mal das hat mit:
datei = Mid(hlink, 15, Len(hlink) - 14)
zu tun. weil das ist ja wichtig zu wissen, denn das muss ich ja dann auch noch konfigurieren und nicht nur :
Hyperlinks(1).Address = "\\server-2\pfad-2\"
wirklich big thx für deine hilfe
mfg nexus
Welche zeile bewirkt das der vordere teil des pfades abgeschnitten wird? ich vermute mal das hat mit:
datei = Mid(hlink, 15, Len(hlink) - 14)
zu tun. weil das ist ja wichtig zu wissen, denn das muss ich ja dann auch noch konfigurieren und nicht nur :
Hyperlinks(1).Address = "\\server-2\pfad-2\"
wirklich big thx für deine hilfe
mfg nexus
Antwort 7 von Guenter
Hallo nexus,
datei = Mid(hlink, 15, Len(hlink) - 14)
in dieser Zeile wird der Dateiname geholt.
Mid ist die Funktion, die den String zerlegt. Eingabe für die Funktion ist der String, der Start, ab dem gelesen wird und die Länge, die gelesen wird.
Die Länge des Gesamtstrings erhalte ich mit Len(String). Den Start erhalte ich, indem ich den von Dir angegebenen Pfad "\\server\pfad\" + 1 nehme Die zulesende Länge erhalte ich aus der Gesamtlänge - Vorgabe.
Ich hoffe, Du kannst das nachvollziehen, ansonsten gute Erklärung in der Excel-Hilfe und üben.
Guß
Günter
datei = Mid(hlink, 15, Len(hlink) - 14)
in dieser Zeile wird der Dateiname geholt.
Mid ist die Funktion, die den String zerlegt. Eingabe für die Funktion ist der String, der Start, ab dem gelesen wird und die Länge, die gelesen wird.
Die Länge des Gesamtstrings erhalte ich mit Len(String). Den Start erhalte ich, indem ich den von Dir angegebenen Pfad "\\server\pfad\" + 1 nehme Die zulesende Länge erhalte ich aus der Gesamtlänge - Vorgabe.
Ich hoffe, Du kannst das nachvollziehen, ansonsten gute Erklärung in der Excel-Hilfe und üben.
Guß
Günter
Antwort 8 von nexus
Vielen dank ...
es scheint zu funktionieren :D
bin ich froh das ich net tausende von links per hand umschreiben muss :D
nochmal big thx und bye
mfg nexus
es scheint zu funktionieren :D
bin ich froh das ich net tausende von links per hand umschreiben muss :D
nochmal big thx und bye
mfg nexus

