Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Hyperlinks in andere Zelle schreiben

Hyperlinks in andere Zelle schreiben
31.03.2014 15:33:49
Christian
Hallo alle zusammen,
bitte helft mir, wie kann ich am einfachsten, die Adressen der Hyperlinks in Spalte A Tabelle 2 in Spalte C Tabelle 2 schreiben? (sind ca. 35000 Stück)? Auch unter der Berücksichtigung, dass wenn beide Spalten Hyperlinks enthalten, die mögliche Gesamtzahl von ca. 65000 überschritten würde. Ziel soll dann sein, dass die Adressen in Spalte C stehen und am Ende weder Spalte A noch C einen Hyperlink enthält, also die Links aus Spalte A gelöscht werden und in C erst gar keine erstellt werden.
Hat da jemand eine Idee?
Viele Grüße und danke
Chris

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlinks auswerten und löschen
01.04.2014 08:11:08
fcs
Hallo Chris,
hier ein Makro zum Auslesen und Löschen der Hyperlinks.
Teste es aber erst einmal in einer Kopie des Tabellenblatts.
Ich bin mir nicht sicher, ob ich alle Varanten der Schreibweise der Adressen in den Hyperlinks korrekt erfasst hab.
Gruß
Franz
Sub Hyperlinks_aufloesen()
Dim Zelle As Range, wks As Worksheet
Dim strAdr As String, strPath As String
Dim strOrd As String, AnzOrd As Integer, intPos, intCount As Integer
If MsgBox("Adresse der Hyperlinks in Spalte A in Spalte C eintragen und Hyperlinks löschen?",  _
_
vbQuestion + vbOKCancel, "Hyperlinks auflösen") = vbCancel Then Exit Sub
Set wks = ActiveSheet
strPath = ActiveWorkbook.Path
Application.ScreenUpdating = False
With wks
For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
With Zelle
If Zelle.Hyperlinks.Count > 0 Then
strAdr = Zelle.Hyperlinks(1).Address
If LCase(Left(strAdr, 4)) = "http" Then
'do nothing - Internet-Link
ElseIf Mid(strAdr, 2, 2) = ":\" Then
'do nothing - Link mit vollständiger Pfadangabe
ElseIf Left(strAdr, 2) = "\\" Then
'do nothing - Link mit Serveradresse - nicht getestet
ElseIf LCase(Left(strAdr, 3)) = "..\" Then
'relative Pfadangabe im Hyperlink
AnzOrd = (Len(strAdr) - Len(VBA.Replace(strAdr, "..\", ""))) / 3
intCount = 0
For intPos = Len(strPath) To 1 Step -1
strOrd = Left(strPath, intPos)
If Mid(strPath, intPos, 1) = "\" Then
intCount = intCount + 1
End If
If intCount = AnzOrd Then Exit For
Next
strAdr = strOrd & VBA.Replace(strAdr, "..\", "")
Else
'Link in Unterverzeichnis des Verzeichnisses der aktiven Datei
strAdr = strPath & "\" & strAdr
End If
Zelle.Offset(0, 2).Value = strAdr
Zelle.Hyperlinks(1).Delete
End If
End With
Next
End With
Application.ScreenUpdating = False
End Sub

Anzeige
AW: Hyperlinks auswerten und löschen
01.04.2014 08:38:36
Christian
Hallo Franz,
der Editor hat
  If MsgBox("Adresse der Hyperlinks in Spalte A in Spalte C eintragen und Hyperlinks löschen?",  _
_
_
vbQuestion + vbOKCancel, "Hyperlinks auflösen") = vbCancel Then Exit Sub
rot markiert und beim ausführen in der oberen Zeile einen Syntaxfehler gemeldet.
Ich hab jedoch einfach auf gerate Wohl die beiden Zeilen gelöscht, dann hat es zum gewünschten Ergebnis geführt.
Vielen Dank
Chris

Anzeige
AW: Hyperlinks auswerten und löschen
01.04.2014 09:33:47
fcs
Hallo Chris,
da waren jetzt beim speichern des Codes in das Forums-Eingabefeld nur ein paar
_
_
_
zuviel eingefügt worden.
Die MsgBox war "nur" eine Sicherheitsabfrage zum bestätigen der Aktion.
Gruß
Franz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige