Anzeige
Archiv - Navigation
1348to1352
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

Hyperlinks nur in einem Bereich ersetzen

Hyperlinks nur in einem Bereich ersetzen
13.02.2014 16:13:25
Hanni
Hallo zusammen,
ich muss Hyperlinks ändern. Hierzu gibt es bereits viele Einträge im Forum. Da werde ich schon was Passendes finden. Allerdings tauschen die von mir gesichteten Makros alle Hyperlinks in einer Datei aus.
Ich muss jedoch den Austausch nur für eine bestimmten Bereich vornehmen (z. B. A3:A412), weil nur ein Teil der Dokumente verschoben wird.
Und ich habe keine Ahnung wie ich das hinbekommen könnte.
Kann mir jemand helfen?
Vielen Dank schon mal im voraus und viele Grüße
Hanni

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlinks nur in einem Bereich ersetzen
13.02.2014 16:28:50
EtoPHG
Hallo Hanni,
Ein Schnipsel für alle im aktiven Blatt und solche nur in Spalte G:I in demselben:
    Dim hyp As Hyperlink
For Each hyp In ActiveSheet.Hyperlinks
MsgBox hyp.Name
Next hyp
For Each hyp In ActiveSheet.Range("G:I").Hyperlinks
MsgBox hyp.Name
Next hyp

Gruess Hansueli

AW: Hyperlinks nur in einem Bereich ersetzen
14.02.2014 11:40:51
Hanni
Hallo zusammen,
hallo Hansueli,
vielen Dank für Dein Schnipsel. Leider komm ich aber trotz Deiner Ergänzung nicht weiter.
Ich habe meinen Entwurf mal dargestellt:
  • 
    Sub Hyperneu()
    Dim HypLink As Hyperlink
    Dim strNeueURL As String
    alt = "\\storage\home\stk\HR\nas\TESTORDNER"
    neu = "\\storage\home\stk\HR\nas\TESTORDNER\Neuer Archivordner\"
    For Each HypLink In ActiveSheet.Range("A1:A495").Hyperlinks
    strNeueURL = Replace(HypLink.Address, alt, neu)
    HypLink.Address = strNeueURL
    HypLink.TextToDisplay = strNeueURL 'alternativ HypLink.TextToDisplay
    Next
    End Sub
    

  • Tatsächlich verändert sich bei den Hyperlinks gar nichts.
    Wenn ich die Maus über den Link bewege erscheint folgende Pfadangabe:
    file///\\storage\home\stk\HR\nas\TESTORDNER\Neuer Archivordner\Name_des_Dokuments
    Wenn ich die Ergänzung "file///" mit in die Veränderung einbeziehe, verändert sich mein Hyperlink auch nicht.
    Da muss ich wohl was falsch gemacht haben.
    Kann mir bitte jemand auf die Sprünge helfen?
    Vielen Dank
    Hanni

    Anzeige
    AW: Hyperlinks nur in einem Bereich ersetzen
    14.02.2014 12:00:08
    EtoPHG
    Hallo Hanni,
    Das fallen mir ein paar Ungereimtheiten auf:
    1. Du siehst anscheinend die neue Pfadangabe, das ja der Begriff Neuer Archivordner darin vorkommt. Also wurde etwas ausgetauscht. Du kannst dir ja alle Eigenschafte anschauen, wenn du einen Hyperlink mal über das Kontextmenü bearbeitest.
    2.deine Variable altenthält am Ende keinen \, wogegen neu schon.
    3.Wenn das Makro 2mal läuft, würde das zu nicht gewollten Effekten führen, denn \Neuer Archivordner\ würde immer wieder 'hinten' angehängt!
    Gruess Hansueli

    AW: Hyperlinks nur in einem Bereich ersetzen
    14.02.2014 14:47:02
    Hanni
    Hallo Hanssueli,
    oh, da war ich leider etwas unpräzise. Sorry.
    Was habe ich gemacht?
    Den von Dir beschriebenen Fehler mit dem "\" habe ich behoben.
    Das Coding sieht nun wie folgt aus:
  • 
    Sub Hyperneu()
    Dim HypLink As Hyperlink
    Dim strNeueURL As String
    alt = "\\storage\home\stk\HR\nas\TESTORDNER\"
    neu = "\\storage\home\stk\HR\nas\TESTORDNER\Neuer Archivordner\"
    For Each HypLink In ActiveSheet.Range("A1:A495").Hyperlinks
    strNeueURL = Replace(HypLink.Address, alt, neu)
    HypLink.Address = strNeueURL
    HypLink.TextToDisplay = strNeueURL 'alternativ HypLink.TextToDisplay
    Next
    End Sub
    

  • Bei der Beschreibung der Pfadangabe ist mir ein Fehler unterlaufen.
    Wenn ich die Maus über den Link bewege erscheint vor und nach Ausführen des Programms folgende Pfadangabe:
    file///\\storage\home\stk\HR\nas\TESTORDNER\Name_des_Dokuments
    Also wurde offensichtlich nichts verändert.
    Möglicherweise verwende ich die falschen Befehle.
    Hast Du oder jemand eine Ahnung?
    Und kann ich das Problem des mehrfachen Ausführens und des vielfachen Anhängens von \Neuer Archivordner\ irgendwie vermeiden?
    Danke im voraus.
    Viele Grüße,
    Hanni

    Anzeige
    AW: Hyperlinks nur in einem Bereich ersetzen
    14.02.2014 15:01:41
    EtoPHG
    Hallo Hanni,
    Nein, ich sehe keine Probleme an deinem Code und habe in soeben an eine Beispiel getestet.
    Das Problem mit Mehrfachausführung kannst du mit dieser Code-Modifikation verhindern:
        For Each HypLink In ActiveSheet.Range("A1:A495").Hyperlinks
    strNeueURL = HypLink.Address
    If InStr(strNeueURL, neu) = 0 Then strNeueURL = Replace(HypLink.Address, alt, neu)
    HypLink.Address = strNeueURL
    HypLink.TextToDisplay = strNeueURL 'alternativ HypLink.TextToDisplay
    Next
    
    Leider kann ich dir nicht mehr sagen. Hast du eine Beipielmappe ?
    Gruess Hansueli

    Anzeige
    AW: Hyperlinks nur in einem Bereich ersetzen
    15.02.2014 07:21:15
    Hanni
    Hallo Hanssueli,
    vielen Dank für Deine Auskünfte und Hilfe. Ich hab es jetzt auf eine etwas andere Art und Weise hinbekommen.
  • 
    Sub hl_eigen()
    Dim altsv As String, neusv As String
    Dim Hlk As Hyperlink
    For Each Hlk In ActiveSheet.Range("C497:C832").Hyperlinks 'jeweils Anpassen!
    altsv = Hlk.Address
    neusv = "2013\" & altsv 'jeweils Anpassen!
    Hlk.Address = Replace(Hlk.Address, altsv, neusv)
    Next
    End Sub
    

  • Damit bin ich im Moment zufrieden.
    Viele Grüße,
    Hanni

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige