Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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

Bestandteil eines Links Suchen-Ersetzen

Bestandteil eines Links Suchen-Ersetzen
04.02.2014 11:57:37
Wolfango
Hallo Experten,
ich habe hier 30 Exceldateien. In jeder sind eine Vielzahl von Links enthalten (die Links sind nicht in Zellen eingegeben, sondern sitzen auf kleinen Grafiken/Bildchen!).
In jedem Link kommt die Zahl 13 vor, die durch die Zahl 14 ersetzt werden soll (Jahresumstellung...manuell wären das mindestens 500 Neuverlinkungen...).
Die Pfade sind aber bei jedem Link immer wieder andere, so dass ein Makro in welchem der komplette Pfad eingegeben werden muss, nicht viel nutzt. Es soll immer nur der "Linkbestandteil" 13 durch eine 14 ausgetauscht werden.
Lässt sich das über einen VBA-Code machen?
Danke und Gruß,
Wo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hyperlinks in Shapes ersetzen
04.02.2014 12:12:47
NoNet
Hallo Wolfgango,
Da hast Du wohl den Jahreswechsel von 2013 auf 2014 "verschlafen", oder ;-) ?
Hier ein kleines Grundgerüst zum Tauschen der Hyperlinks der Bilder auf dem aktiven Tabellenblatt :
Sub ReplaceHyperlinkInShapes()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If Not sh.Hyperlink Is Nothing Then
sh.Hyperlink.Address = Replace(sh.Hyperlink.Address, "13", "14")
End If
Next
End Sub
Der Code müsste dann noch ausgebaut werden (alle Blätter, alle Dateien etc.).
Falls Du das nicht alleine hinbekommst, melde Dich einfach nochmal.
Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 02.-04.05.2014 in Stuttgart

http://www.exceltreffen.de/index.php?page=243
Anmeldungen sind noch bis 16.03.2014 möglich ! - Schau doch mal rein !

Anzeige
AW: Hyperlinks in Shapes ersetzen
04.02.2014 13:07:38
Wolfango
Danke schon mal.
Und wie muss dann so eine "ausgebaute" Fassung lauten?
(...hab' keine Ahneung von VBA, benutze immer nur die Codes aus diesem wunderbaren Forum).
Es wäre ideal/ausreichend wenn der Code alle Links einer Datei (unabhängig von der Anzahl der Arbeitsblätter) erfasst.
Gruß, Wo

erste Ausbaustufe
04.02.2014 13:16:48
Rudi
Hallo,
für alle Worksheets im aktiven Workbook:
Sub ReplaceHyperlinkInShapes()
Dim sh As Shape, wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
For Each sh In wks.Shapes
If Not sh.Hyperlink Is Nothing Then
sh.Hyperlink.Address = Replace(sh.Hyperlink.Address, "13", "14")
End If
Next
Next
End Sub

Gruß
Rudi

Anzeige
AW: erste Ausbaustufe
04.02.2014 13:19:17
Wolfango
Danke...hab's direkt ausprobiert.
Wenn ich auf Debuggen klicke wird folgende Zeile markiert:
If Not sh.Hyperlink Is Nothing Then

AW: erste Ausbaustufe
04.02.2014 13:31:14
Wolfango
...und: Laufzeitfehler 1004

AW: erste Ausbaustufe
04.02.2014 14:25:49
Rudi
Hallo,
kann ich nicht nachvollziehen.
Allerdings muss es wohl auch .SubAddress anstatt .Address heißen.
Gruß
Rudi

Mea culpa ! - Meine Schuld...
04.02.2014 16:01:27
NoNet
Hallo Wolfgango, Rudi,
der Fehler lag wohl an meinem initialen Code : Wenn ein Shape keinen Hyperlink besitzt, kann dies irrtümlicherweise NICHT mit "sh.Hyperlink is Nothing" abgefragt werden, denn diese Zeile erzeugt dann den Fehler 1004. Hier eine kleine "schmutzige aber funktionierende" Korrektur :
Sub ReplaceHyperlinkInShapes()
Dim sh As Shape, wks As Worksheet
On Error Resume Next
For Each wks In ActiveWorkbook.Worksheets
For Each sh In wks.Shapes
sh.Hyperlink.Address = Replace(sh.Hyperlink.Address, "13", "14")
Next
Next
End Sub
Salut, NoNet

Anzeige
Mea culpa ! nicht nur
04.02.2014 16:27:15
Rudi
Hallo NoNet,
ich hab auschließlich mit Shapes, die einen HL haben getestet.
Die .Address ist bei HL auf Shapes aber immer "". Das Ziel ist die .Subaddress.
Gruß
Rudi

Nööö : .Address stimmt schon - keine Untermieter
04.02.2014 16:47:48
NoNet
Hey Rudi,
meine Shapes (und auch ich ;-) haben nur eine .Address und keine .SubAddress
Der Code und die geänderten Hyperlinks funktionieren auch einwandfrei (selbst getestet !).
Salut,
Untermieter ;-)

AW: Mea culpa ! - Meine Schuld...
04.02.2014 17:45:07
Wolfango
...gerade ausprobiert! Funktioniert super!!!!
Danke für die Mühe!
Gruß, Wo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige