Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

hyperlinks ändern





Frage

Hi, ich möchte in einer Excel Datei Hyperlinks, dessen servername sich geändert hat, automatisch ändern. Ich hab wohl schon einen threat [url]https://supportnet.de/discussion/listmessages.asp?AutoID=138687[/url] gefunden, aber ich habe das gefühl, dass das Script nur geht, wenn in jeder Zelle untereinander die Hyperlinks sind. Wenn in einer Zelle kein Hyperlink ist, dann bricht es ab. Wie kann man das umgehen? Vorher checken, ob ein Hyperlink vorhanden, bekomme ich nicht hin. Meine idee war: Sub Hyperlinks_aendern() Dim c As Integer Dim r As Integer Dim hlink As String Dim datei As String For c = 1 To Cells(Columns.Count, 1).End(xlUp).Column For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(r, c).Hyperlinks(1).Address <> Null Then hlink = Cells(r, c).Hyperlinks(1).Address datei = Replace(hlink, "yyy", "zzz") Cells(r, c).Hyperlinks(1).Address = datei End If Next r Next c End Sub Aber bei dem IF steigt das programm aus. Irgendwelche Vorschläge? Gruß Farkney

Antwort 1 von Beverly

Hi Farkney,

versuche es mit diesem Code

Sub hyperlink_inhalte_ersetzen()
    Dim loZeile As Long
    Dim hyAdresse As Hyperlink
    For loZeile = 1 To 1000
        For Each hyAdresse In Worksheets(1).Hyperlinks
            If hyAdresse.Name = Cells(loZeile, 1).Value Then
                Application.EnableEvents = False
                Cells(loZeile, 1).Value = Replace(Cells(loZeile, 1).Value, "Mappe", "Pappe")
                ActiveSheet.Hyperlinks.Add Anchor:=Cells(loZeile, 1), Address:=Cells(loZeile, 1).Value, TextToDisplay:=Cells(loZeile, 1).Value
                Application.EnableEvents = True
                Exit For
            End If
        Next hyAdresse
    Next loZeile
End Sub


Bis später,
Karin

Antwort 2 von farkney

Hi Karin,

ich hab Dein Script mal gestartet, aber es ist nichts passiert (ausser Sanduhr). Nachdem ich mir das dann mal angesehen habe, vergleicht das Script ja den hyperlink mit einer zu suchenden Zelle. Nur in der Zelle steht ja der Hyperlink nicht sondern nur quasi dahinter - will sagen Zellinhalt (sichtbar) und hyperlink sind unterschiedlich. Hab ich das richtig verstanden? Gibt es dafür auch eine Lösung?

Vielen Dank
Farkney

Antwort 3 von Beverly

Hi Farkney,

ich komme leider erst jetzt dazu dir zu antworten, da ich unter dem Tag keinen Zugriff auf das Forum habe.

Aus deinem Beitrag war mir nicht ersichtlich, dass die Anzeige eine andere als die eigentliche Adresse ist. Versuche es mal mit diesem Code

Sub hyperlink_inhalte_ersetzen2()
    Dim loZeile As Long
    Dim hyAdresse As Hyperlink
    Dim strAnzeige As String
    With Worksheets("Tabelle1")
        For loZeile = 1 To 1000
            If .Cells(loZeile, 1).Hyperlinks.Count Then
                strAnzeige = .Cells(loZeile, 1).Value
                .Cells(loZeile, 1).Hyperlinks(1).TextToDisplay = .Cells(loZeile, 1).Hyperlinks(1).Address
                .Cells(loZeile, 1).Hyperlinks(1).Delete
                .Cells(loZeile, 1).Value = Replace(.Cells(loZeile, 1).Value, "Mappe", "Pappe")
                ActiveSheet.Hyperlinks.Add Anchor:=.Cells(loZeile, 1), Address:=Cells(loZeile, 1).Value, TextToDisplay:=strAnzeige
            End If
        Next loZeile
    End With
End Sub


Bis später,
Karin

Antwort 4 von farkney

Hi Karin,

vielenvielen Dank.

Ich habe noch eine Variable für die Spalten eingefügt und dann hat alles wunderbar funktioniert.

Vielen Dank nochmal.
Gruß Frank

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: