Registriert seit: 16.05.2018
Version(en): 2016
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
19.08.2018, 19:49
(Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2018, 19:49 von schauan.)
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.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Frogger1986
Registriert seit: 16.05.2018
Version(en): 2016
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 16.05.2018
Version(en): 2016
19.08.2018, 21:19
(Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2018, 21:19 von olivo.)
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Olivo,
wie ist der Wert von i und was steht in der entsprechenden Zelle?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)