[Excel] Hyperlinks ändern

Dieses Thema [Excel] Hyperlinks ändern im Forum "Microsoft Office Suite" wurde erstellt von SchUFT_Pinky, 2. Dez. 2004.

Thema: [Excel] Hyperlinks ändern So folgende Situation: Eine Excel-Tabelle mit rund 800 Hyperlinks. Die Links verweisen per UNC-Pfad...

  1. So folgende Situation:

    Eine Excel-Tabelle mit rund 800 Hyperlinks.
    Die Links verweisen per UNC-Pfad (\\server\share\pdf) auf PDF-Dateien in einem Gruppenshare.

    Problem:

    Das Gruppenshare wird auf einen anderen Server umgezogen und die Pfade gehn damit ins leere.

    Wie bekommt man nun möglichst komfortabel die Pfade angepasst?

    Suchen/Ersetzen ändert nur den Text der Links!
     
  2. Hallo MrOrange,

    folgender Makro sollte dir helfen.

    Gruß Matjes ;)

    Code:
    Sub HYPERLINKS_Verweise_Ersetzen()
       ->1.    Abfrage des zu ersetzenden String/Ersatzstring
       ->1.1   Abfrage des zu ersetzenden String im Hyperlink
       ->1.1.1 leerer String -> Exit Sub
       ->1.2   Abfrage des Ersatztstrings im Hyperlink
       ->1.2.1 leerer String -> Exit Sub
       ->2.    Sicherheitsabfrage
       ->3.    In allen Arbbeitsblättern der aktiven Mappe
       ->3.1   Alle Hyplinks suchen
       ->3.2   Prüfen, ob der zu ersetzenden String im Hyperlink
       ->      enthalten ist
       ->3.2.1 Wenn ja, zu ersetzenden Strings im Verweis durch
       ->      Ersatzstring ersetzen
       ->4.    Anzahl der Ersetzungen ausgeben
    '**********************************************************
      Dim ws As Worksheet, h As Hyperlink, ret As Integer
      Dim s_HyperlinkAddr As String
      Dim s_ZuErsetzenderText As String, s_Ersatztext As String
      Dim l_ErsetzenZaehler As Long, pos1 As Long
      
      l_ErsetzenZaehler = 0
      
     ->1.    Abfrage des zu ersetzenden Textes/Ersatztextes
     ->1.1   Abfrage des zu ersetzenden Textes im Hyperlink
      s_ZuErsetzenderText = _
          InputBox( _
          Bitte geben Sie den im Hyperlink zu ersetzenden String ein., _
          Eingabe des zu ersetzenden Strings)
     ->1.1.1 leerer String -> Exit Sub
      If s_ZuErsetzenderText =  Then Exit Sub
      
     ->1.2   Abfrage des Ersatztstrings im Hyperlink
      s_Ersatztext = _
          InputBox( _
          Bitte geben Sie den Ersatzstring ein., _
          Eingabe des Ersatzstrings, _
          s_ZuErsetzenderText)
     ->1.2.1 leerer String -> Exit Sub
      If s_Ersatztext =  Then Exit Sub
      
     ->2.    Sicherheitsabfrage
      ret = MsgBox( _
            In den Hyperlinks soll & vbLf & vbLf & _
            s_ZuErsetzenderText & vbLf & vbLf & _
            durch & vbLf & vbLf & _
            s_Ersatztext & vbLf & vbLf & _
            ersetzt werden?, _
            vbQuestion + vbYesNo + vbDefaultButton2)
      If ret = vbYes Then->Ja???
       ->3.    In allen Arbbeitsblättern der aktiven Mappe
        For Each ws In ActiveWorkbook.Worksheets
         ->3.1   Alle Hyplinks suchen
          For Each h In ws.Hyperlinks
           ->3.2   Prüfen, ob der zu ersetzenden String
           ->      im Hyperlink enthalten ist
            s_HyperlinkAddr = h.Address
            pos1 = InStr(1, s_HyperlinkAddr, s_ZuErsetzenderText)
            If pos1 > 0 Then
             ->3.2.1 Wenn ja, zu ersetzenden Strings im Verweis
             ->      durch Ersatzstring ersetzen
              s_HyperlinkAddr = _
                Left(s_HyperlinkAddr, pos1 - 1) & s_Ersatztext & _
                Right(s_HyperlinkAddr, _
                Len(s_HyperlinkAddr) - Len(s_ZuErsetzenderText) - pos1 + 1)
              h.Address = s_HyperlinkAddr
              l_ErsetzenZaehler = l_ErsetzenZaehler + 1
            End If
          Next
        Next
      End If
    '4.    Anzahl der Ersetzungen ausgeben
      MsgBox (Anzahl der Ersetzungen: & l_ErsetzenZaehler)
    End Sub
     
  3. Hey super, vielen Dank.

    Werde es morgen mal testen und mich wieder melden.
     
  4. Fast vergessen ;)

    Entsprechend angepasst und funktioniert, Danke.
     
  5. Hallo zusammen,

    dass es doch immer irgend jemand gibt der gleiche Problem hat wie man selbst...  :)

    Wollte mich gerade dem Makro annehmen, als ich entdeckt hab, dass es auch viel einfacher geht:

    Man öffne einfach den Script Editor (ALT+Umschalt+F11) - man sehe dort das sheet in html Ansicht und wähle im Menü einfach suchen und ersetzen - unn fertig !

    Das witzige: ohne den Makro Ansatz wär ich nicht drauf gekommen...

    Frohes basteln noch

    mofeatures
     
  6. Hi mofeatures,

    das hört sich gut an. Bei Excel 97 finde ich aber keine html-Ansicht.

    Mit welcher Version arbeitest Du denn ?

    Gruß Matjes  :)
     
  7. Hallo Matjes,

    ich arbeite mit Excel 2000, mit Excel 97 bin ich weniger vertraut bzw. hab keine Möglichkeit zu sehen was Du siehst.

    Bei 2000 kommst Du automatisch dahin wohin Du willst, will heißen nachdem Du den Script Editor aufgerufen hast kannst Du direkt den Ersetzen Befehl anwenden.

    Was siehst Du denn in 97 wenn Du den Editor aufrufst ?

    Gruß mofeatures
     
  8. Hallo mofeatures,

    in Excel 97 sehe ich nur eine leere Code-Seite des Tabellenblattes.Scheint also erst ab Excel2000 zu funktionieren.
    Mit Excel 2000 ist die Web-Ansicht neu eingeführt worden. In Excel 97 gibt es die nicht.

    Aber ist ein wertvoller Tip  :D

    Gruß Matjes :)
     
Die Seite wird geladen...

[Excel] Hyperlinks ändern - Ähnliche Themen

Forum Datum
[EXCEL] Punkt statt Komma Microsoft Office Suite 4. Juli 2008
[Excel] Formeln kopieren Microsoft Office Suite 5. März 2007
[excel]Marker setzen Microsoft Office Suite 5. Jan. 2007
[Excel]Verknüpfung auflösen und Wert behalten Microsoft Office Suite 27. März 2006
[Excel] ComboBox Inhalt aus Dialog in Tabelle einfügen Microsoft Office Suite 23. Okt. 2005