[Excel] Hyperlinks ändern

  • #1
S

SchUFT_Pinky

Bekanntes Mitglied
Themenersteller
Dabei seit
11.07.2001
Beiträge
9.134
Reaktionspunkte
0
Ort
Nürnberg
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 :)
 
Thema:

[Excel] Hyperlinks ändern

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben