Clever-Excel-Forum

Normale Version: Angezeigten Text von Hyperlinks ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich habe eine Excelmappe mit 144 Büchertiteln - alle in Spalte A.
Nun habe ich vor, für jeden Buchtitel ein Tabellenblatt hinzuzufügen.

Spalte A würde ich gern mit Hyperlinks versehen, die mich zum jeweils angeklickten Buchtitel bringt, sprich auf das dazugehörige Tabellenblatt.

Nun habe ich schon eine Weile gesucht und bin auch teilweise fündig geworden. Ich habe einen VBA-code gefunden, der mir die Links erstellt, allerdings in einer anderen Spalte und benannt mit dem Namen des Tabellenblatts zu dem der Link führt, in meinem Fall "Tabelle2"-"Tabelle144". Aktuell habe ich quasi Spalte A gefüllt mit Buchtiteln und Spalte C gefüllt mit Hyperlinks.

Ich möchte aber, dass der angezeigte Text des Hyperlinks, dem jeweiligen Buchtitel entspricht. Kann mir da jemand helfen?



mfg
Olivo
Hallo Olivo,

dann zeig doch mal den Code.
Ansonsten könntest Du auch die HYPERLINK Funktion nutzen, schaue dazu mal in die Hilfe.  

Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
1Tabelle2Tabelle2

ZelleFormel
C1=HYPERLINK("#" & A1 & "!A1";A1)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Da vermutlich Leerzeichen im Buchtitel sind müsstest Du den in der Funktion gebildeten Blattnamen noch in Hochkommas einschließen.
Hallo schauan,

hier der code:
Code:
Public Sub Hyperlinks_erstellen()
   Dim WS As Worksheet, i As Integer
   
   i = 1
   Application.ScreenUpdating = False
   With ThisWorkbook.Sheets("Tabelle1")
       For Each WS In ThisWorkbook.Worksheets
           If WS.Name <> "Tabelle1" Then
               .Hyperlinks.Add Anchor:=.Cells(i, 3), SubAddress:=WS.Name & "!A1", TextToDisplay:=WS.Name, Address:=""
               i = i + 1
           End If
       Next WS
   End With
   Application.ScreenUpdating = True
End Sub

Wenn ich deine Lösung nehmen würde, hätte ich am Ende 2 Spalten: eine mit den Titeln und eine mit den Links. Ich möchte aber nur eine Spalte haben am Ende. Spalte A soll die Titel beinhalten und jeder Titel soll mit einem Link hinterlegt sein.

mfg
Olivo
Hallo Olivio,

Du würdest aber gleich sehen, wo es hingeht Smile
Hier mal mit dem Blattnamen automatisiert, wenn es bei Tabelle2 usw. bleibt Smile:

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1Titel
2Mein BuchTabelle2

ZelleFormel
B2=HYPERLINK("#Tabelle" & ZEILE() & "!A1";"Tabelle" & ZEILE())
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Der Code könnte so funktionieren. Statt ws.Name habe ich jetzt .Cells(i,1).Value Die Zählung von i fängt mit 1 an, der Text würde also ab Zeile 1 geholt.

Code:
Public Sub Hyperlinks_erstellen()
   Dim WS As Worksheet, i As Integer
   i = 1
   Application.ScreenUpdating = False
   With ThisWorkbook.Sheets("Tabelle1")
       For Each WS In ThisWorkbook.Worksheets
           If WS.Name <> "Tabelle1" Then
               .Hyperlinks.Add Anchor:=.Cells(i, 3), SubAddress:=WS.Name & "!A1", TextToDisplay:=.Cells(i, 1).Value, Address:=""
               i = i + 1
           End If
       Next WS
   End With
   Application.ScreenUpdating = True
End Sub
Hallo schauan,

hab meinen code mit deinem code ersetzt und erhalte einen Fehler:

"Laufzeitfehler "5".:
Unzulässiger Prozeduraufruf oder ungültiges Argument.

Beim debuggen wird folgende Zeile gelb markiert:

Code:
.Hyperlinks.Add Anchor:=.Cells(i, 3), SubAddress:=WS.Name & "!A1", TextToDisplay:=.Cells(i, 1).Value, Address:=""


mfg
Olivo
Hallo Olivo,

wie ist der Wert von i und was steht in der entsprechenden Zelle?