Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hyperlink Adresse ändern mit Inputbox

Hyperlink Adresse ändern mit Inputbox
26.01.2015 09:20:22
Dieter(Drummer)
Guten Morgen, Spezialisten.
Anbei ein Makro aus dem Internet, dass alle Hyperlinks einer Mappe sucht und die alte Hyperlink Adresse in die neue Hyperlink Adresse ändert.
Da die neue Adresse im Makro eingesetzt werden muss, wäre es einfacher, wenn das Makro eine Box aufruft, in der die alte Adresse gezeigt wird und in der man die neue Adresse eingeben kann. Dann sollen alle gefundenen Adressen geändert werden.
Grundsätzliches:
Alle Hyperlink Adressen können, müssen aber nicht, bis auf die Datei, die am Ende steht, evtl. anders sein. Es reicht also, wenn bis auf den Dateinamen die Adresse geändert werden kann. Auch der Laufwerksbuchstabe kann anders sein (auch evtl. ein Server).
Wäre schön, wenn das geht.
Eine Beispiel Datei füge ich an: https://www.herber.de/bbs/user/95266.xlsm
Gruß,
Dieter(Drummer)
  • 'Hyperlink Adresse in ganzer Mappe aktualisieren
    Sub ChangeHyperlinks()
    Dim i As Integer 'Mx selbst eingefügt, fehlte im Makro
    Dim sHyp As Hyperlink
    Dim oldAddress As String
    Dim newAddress As String
    oldAddress = "C:\test\Vor Hyperlink.xlsx"
    newAddress = "C:\Test\Test2\Vor Hyperlink.xlsx"
    'alle Tabelle durchlesen
    For i = 1 To Sheets.Count
    For Each sHyp In Sheets(i).Hyperlinks
    If InStr(1, sHyp.Address, oldAddress) Then
    sHyp.Address = Mid(sHyp.Address, 1, InStr(1, sHyp.Address, oldAddress) - 1) &  _
    newAddress & Mid(sHyp.Address, InStr(1, sHyp.Address, oldAddress) + Len(oldAddress))
    sHyp.TextToDisplay = sHyp.Address
    End If
    Next
    Next i
    End Sub
    


  • 7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Hyperlink Adresse ändern mit Inputbox
    26.01.2015 09:50:47
    UweD
    Hallo
    so?
        oldAddress = InputBox("Suchen nach?", "Hyper change", "C:\temp\Vor Hyperlink.xlsx")
    newAddress = InputBox("Ersetzen durch?", "Hyper change", "C:\temp\Test2\Vor Hyperlink.xlsx") _
    
    Gruß UweD

    AW: Danke UweD, Da geht aber nichts ...
    26.01.2015 10:06:46
    Dieter(Drummer)
    Hi UweD,
    beim Aufruf de Makros ändert sich nicht die Hyperlinkadresse.
    Es sollte auch nach Möglichkeit die bereits vorhandenen Adressen (Suchen nach?) aus den existierenden Hyperlinks angezeigt werden, die anschliessend dann per Eingabe (Ersetzen durch?) geändert werden sollen. Im Makro selbst, sollte keine Suchvorgabe sein, da ja aus den Hypers gesucht werden soll.
    Es dacg machbar?
    Gruß, Dieter(Drummer)

    Anzeige
    AW: UweD, es funktioniert doch, aber
    26.01.2015 10:15:11
    Dieter(Drummer)
    ich hatte Groß- und Kleinschreibung nicht beachtet!
    Wäre trotzdem noch prima, wenn er die Adresse vorchlägt, die im Hyper schon steht und nicht im Makro.
    Gruß, Dieter(Drummer)

    AW: UweD, es funktioniert doch, aber
    26.01.2015 14:05:37
    UweD
    Hallo nochmal
    So ?
    Sub ChangeHyperlinks()
    Dim i As Integer
    Dim sHyp As Hyperlink
    For i = 1 To Sheets.Count 'alle Tabelle durchlesen
    For Each sHyp In Sheets(i).Hyperlinks
    If sHyp.Address  "" Then
    sHyp.Address = InputBox("Ersetzen durch?", "Hyper change", sHyp.Address)
    sHyp.TextToDisplay = InputBox("Ersetzen durch?", "Hyper change", sHyp. _
    TextToDisplay)
    End If
    Next
    Next i
    End Sub
    

    Gruß UweD

    Anzeige
    AW: Danke UweD. Prima, geht noch ...
    26.01.2015 15:02:27
    Dieter(Drummer)
    eine Bitte, kannst Du das Makro noch so anpassen, dass bei aktivieren von Botton "Abbrechen", das Makro beendet ist ohne Änderungen? Wäre gut, wenn das noch geht.
    Dennoch erstmal Danke für Deine Hilfe.
    Gruß, Dieter(Drummer)

    AW: Danke UweD. Prima, geht noch ...
    26.01.2015 15:23:21
    UweD
    Hallo
    bei "Exit For" wird bei Abbrechen mit dem nächsten link weitergemacht
    bei "Exit Sub" wird beim ersten Abbrechen aufgehört
    Sub ChangeHyperlinks()
    Dim i As Integer
    Dim sHyp As Hyperlink
    Dim newAddress As String
    For i = 1 To Sheets.Count 'alle Tabelle durchlesen
    For Each sHyp In Sheets(i).Hyperlinks
    If sHyp.Address  "" Then
    newAddress = InputBox("Ersetzen durch?", "Hyper change", sHyp.Address)
    If newAddress = "" Then Exit For ' oder Exit sub
    sHyp.Address = newAddress
    sHyp.TextToDisplay = InputBox("Ersetzen durch?", "Hyper change", sHyp. _
    TextToDisplay)
    End If
    Next
    Next i
    End Sub
    

    Anzeige
    AW: Danke UweD. Klappt perfekt!
    26.01.2015 15:38:12
    Dieter(Drummer)
    Noch einen schönen Tag und danke für Deine tolle Hilfe und Bemühung.
    Herzlichen Dank und Gruß,
    Dieter(Drummer)

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige