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' |
| A | B | C |
1 | Tabelle2 | | Tabelle2 |
Zelle | Formel |
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
Hier mal mit dem Blattnamen automatisiert, wenn es bei Tabelle2 usw. bleibt
:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B |
1 | Titel | |
2 | Mein Buch | Tabelle2 |
Zelle | Formel |
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?