Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Hyperlink anpassen per VBA

Betrifft: Hyperlink anpassen per VBA von: Marcy
Geschrieben am: 10.10.2014 10:56:02

Hallo Excel VBA Profis,

ich bräuchte mal eure Hilfe zum Anpassen einer Datei, in der hunderte Hyperlinks in Spalte P drin sind.
Der Ordner Name hat sich leider geändert, möchte nun nicht manuell jeden Link anpassen.

So sieht der Hyperlink derzeit aus.
\\wismb01\TB_Walz\TB_Wuchtprotokoll\10142_187201.pdf

Das ist in allen Links gleich.
\\wismb01\TB_Walz\TB_Wuchtprotokoll\

Aus TB_Wuchtprotokoll wird jetzt also nur noch Wuchtprotokoll.

Wie kann ich in Spalte P aus dem Hyperlink per VBA "TB_" NUR BEI TB_WUCHTPROTOKOLL entfernen?
Kurz um: Ersetze TB_WUCHTPROTOKOLL in WUCHTPROTOKOLL

Danke für Eure Hilfe.

Gruß Marcy

  

Betrifft: AW: Hyperlink anpassen per VBA von: Klaus M.vdT.
Geschrieben am: 10.10.2014 11:34:57

Hallo Marcy,
Spalte P markieren, STRG+H drücken.
SUCHEN NACH: \TB_Wuchtprotokoll
ERSETZEN DURCH: \Wuchtprotokoll

wenn du das unbedingt per VBA brauchst, lässt du dabei den rekorder laufen.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Hyperlink anpassen per VBA von: Marcy
Geschrieben am: 10.10.2014 12:11:11

Hallo Klaus,

danke für den Tipp.
Hatte ich auch erst gedacht, aber in der Spalte stehen die Datei Namen in den Zellen und die Zellen sind mit dem Hyperlink belegt.

Dabei funktioniert das suchen ersetzen nicht.


Gruß Marcy


  

Betrifft: AW: Hyperlink anpassen per VBA von: {Boris}
Geschrieben am: 10.10.2014 16:57:14

Hi Marcy,

Option Explicit

Sub til()
Dim C As Range
'On Error Resume Next  -> nur für den Fall der Fälle verwenden, dass es auch Zellen ohne  _
Hyperlink gibt
For Each C In Range("P2:P500") 'Bereich anpassen!
    C.Hyperlinks(1).Address = Replace(C.Hyperlinks(1).Address, "TB_WUCHTPROTOKOLL ", " _
WUCHTPROTOKOLL")
Next C
End Sub
VG, Boris


  

Betrifft: Da hatte sich ein Leerzeichen eingeschmuggelt... von: {Boris}
Geschrieben am: 10.10.2014 16:58:23

...daher nochmal:

Option Explicit

Sub til()
Dim C As Range
'On Error Resume Next  -> nur für den Fall der Fälle verwenden, dass es auch Zellen ohne  _
Hyperlink gibt
For Each C In Range("P2:P500") 'Bereich anpassen!
    C.Hyperlinks(1).Address = Replace(C.Hyperlinks(1).Address, "TB_WUCHTPROTOKOLL", " _
WUCHTPROTOKOLL")
Next C
End Sub
VG, Boris


  

Betrifft: AW: Da hatte sich ein Leerzeichen eingeschmuggelt... von: Marcy
Geschrieben am: 10.10.2014 20:11:28

Hallo Boris,

vielen Dank für Deine Hilfe.
Werde es Montag direkt testen und berichten (hier Zuhause habe ich ein MAC :-( )

Wie ich Dich aber kenne, wird es funktionieren.
Daher schon mal danke und ein schönes WE

Marcy


  

Betrifft: AW: Da hatte sich ein Leerzeichen eingeschmuggelt... von: Marcy
Geschrieben am: 16.10.2014 06:09:10

Hallo Boris,

leider passiert nichts.
Es kommt aber auch keine Fehler Meldung.
Ich habe ebenfalls On Error aktiviert, da auch leere Zellen in dieser Spalte vorhanden sind.

Gruß Marcy


  

Betrifft: AW: Da hatte sich ein Leerzeichen eingeschmuggelt... von: {Boris}
Geschrieben am: 16.10.2014 10:32:39

Hi Marcy,

kannst Du mal ein kleines Beispiel hochladen?
Ich bau es Dir dann ein.

VG, Boris


  

Betrifft: AW: Da hatte sich ein Leerzeichen eingeschmuggelt... von: Marcy
Geschrieben am: 16.10.2014 12:45:45

klar geht :-)
Das ist keine Datei von mir, die ist noch auf 97.

https://www.herber.de/bbs/user/93194.xlsm

hoffe es klappt.


  

Betrifft: GROSS/-kleinschreibung von: {Boris}
Geschrieben am: 16.10.2014 12:59:46

Hi Marcy,

Replace ist von Haus aus Case Sensitive. Suche also nicht nach TB_WUCHTPROTOKOLL sondern nach TB_Wuchtprotokoll. Also:

Sub til()
 Dim C As Range
 On Error Resume Next  '-> nur für den Fall der Fälle verwenden, dass es auch Zellen ohne _
 Hyperlink gibt
 For Each C In Range("P3:P20000") 'Bereich anpassen!
     C.Hyperlinks(1).Address = Replace(C.Hyperlinks(1).Address, "TB_Wuchtprotokoll", " _
WUCHTPROTOKOLL")
 Next C
 End Sub
VG, Boris


 

Beiträge aus den Excel-Beispielen zum Thema "Hyperlink anpassen per VBA"