Supportnet / Forum / Tabellenkalkulation
makro um hyperlinks zu ändern
Frage
hallo allerseits,
habe eine tabelle wo in der ersten spalte jeweils ein hyperlink dahintersteht. habe dazu auch schon einen sehr brauchbaren tread gefunden:
https://supportnet.de/discussion/listmessages.asp?AutoID=138687
das ich script nicht 1:1 übernehmen kann habe ich schon befürchtet
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
als absoluter makro newbie wäre ich euch sehr dankbar wenn mir jemand sagen kann was ich anpassen muss.
also es betrifft hyperlinks in der 1.spalte der datei
die ersten 57 zeichen des ursprünglichen links sollen abgeschnitten werden. gesamtlänge des urpsrünglichen links beträgt 97 zeichen (wenn das relavant sein sollte).
vielen dank
mixxon
Antwort 1 von Beverly
Hi mixxon,
versuche es mal mit diesem Code
Bis später,
Karin
versuche es mal mit diesem Code
Sub Hyperlinks_aendern()
Dim n As Integer
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(n, 1).Value = Right(Cells(n, 1).Hyperlinks(1).Address, 58)
Next n
End Sub
Bis später,
Karin
Antwort 2 von mixxon
hallo karin,
danke für die schnelle antwort. habs vergessen zu erwähnen.
das ganze sollte dann durch einen anderen pfad ersetzt werden:
http://www.xxx.xx/xxx/
hat insgesamt 46 zeichen (wenns irgendwie relevant sein sollte)
wo muss ich das im script berücksichtigen?
danke
mixxon
danke für die schnelle antwort. habs vergessen zu erwähnen.
das ganze sollte dann durch einen anderen pfad ersetzt werden:
http://www.xxx.xx/xxx/
hat insgesamt 46 zeichen (wenns irgendwie relevant sein sollte)
wo muss ich das im script berücksichtigen?
danke
mixxon
Antwort 3 von Beverly
Hi mixxon,
ersetze die entsprechende Codezeile durch diese
Bis später,
Karin
ersetze die entsprechende Codezeile durch diese
Cells(n, 1).Value = "http://www.xxx.xx/xxx/" & Right(Cells(n, 1).Hyperlinks(1).Address, 58)
Bis später,
Karin
Antwort 4 von mixxon
hallo karin,
habe das heute morgen probiert. bekomme beim ausführen jedoch die fehlermeldung:
laufzeitfehler ´9´:
index ausserhalb des gültigen bereiches
wenn ich auf debuggen gehe markiert er folgende zeile gelb:
Cells(n, 1).Value = "http://www.xxx.xx/xxx/" & Right(Cells(n, 1).Hyperlinks(1).Address, 58)
ist der link den ich einfügen möchte zu lang? (46 zeichen)
übrigens möchte ich noch die letzten beiden 2 zeichen des ursprünglichen links entfernen, geht das? ist aber nicht so wichtig, bin schon froh wenn ich dass so zum laufen bringe.
lg
mixxon
habe das heute morgen probiert. bekomme beim ausführen jedoch die fehlermeldung:
laufzeitfehler ´9´:
index ausserhalb des gültigen bereiches
wenn ich auf debuggen gehe markiert er folgende zeile gelb:
Cells(n, 1).Value = "http://www.xxx.xx/xxx/" & Right(Cells(n, 1).Hyperlinks(1).Address, 58)
ist der link den ich einfügen möchte zu lang? (46 zeichen)
übrigens möchte ich noch die letzten beiden 2 zeichen des ursprünglichen links entfernen, geht das? ist aber nicht so wichtig, bin schon froh wenn ich dass so zum laufen bringe.
lg
mixxon
Antwort 5 von Beverly
Hi mixxon,
kann es sein, dass in einigen Zellen kein Hyperlink enthalten ist? Dann versuche es mal mit diesem Code
Evtl.musst du die 38 noch ändern, damit auch die letzten beiden Zeichen richtig abgeschnitten werden. 58 ist die Startposition für den Rest der urprünglichen Adresse, denn 57 Zeichen sollten links abgeschnitten werden.
Bis später,
Karin
kann es sein, dass in einigen Zellen kein Hyperlink enthalten ist? Dann versuche es mal mit diesem Code
Sub Hyperlinks_aendern()
Dim n As Integer
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(n, 1).Hyperlinks.Count > 0 Then
Cells(n, 1).Value = "http://www.xxx.xx/xxx/" & Mid(Cells(n, 1).Hyperlinks(1).Address, 58, 38)
End If
Next n
End Sub
Evtl.musst du die 38 noch ändern, damit auch die letzten beiden Zeichen richtig abgeschnitten werden. 58 ist die Startposition für den Rest der urprünglichen Adresse, denn 57 Zeichen sollten links abgeschnitten werden.
Bis später,
Karin
Antwort 6 von mixxon
hallo karin,
superklasse, vielen dank! jetzt hats geklappt, du hast recht gehabt die erste zeile ist eine überschrift die ich dann entfernt habe.
nach dem makro wurden alle links in der bearbeitungsleiste angezeigt, den rest konnte ich dann problemlos mit ersetzen lösen.
hat mir echt ne menge arbeit erspart.
danke
mixxon
superklasse, vielen dank! jetzt hats geklappt, du hast recht gehabt die erste zeile ist eine überschrift die ich dann entfernt habe.
nach dem makro wurden alle links in der bearbeitungsleiste angezeigt, den rest konnte ich dann problemlos mit ersetzen lösen.
hat mir echt ne menge arbeit erspart.
danke
mixxon

