Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Inhaltsverzeichnis mit Navigationsfunktion
#1
Hallo zusammen,

ich habe eine Datei die mittlerweile recht viele Sheets hat. 
Ich möchte ein Readme erstellen in dem die einzelnen Reiter erklärt sind. 
Und dazu wäre es cool wenn man eine Navigationsfunktion hat dass man per Klick auf den jeweiligen Reiter springen kann - und von dort wieder zurück auf die Übersicht. 

Ich habe das schon mehrmals gesehen und hatte es vor Jahren auch selbst schon einmal umgesetzt. 
Ich weiß noch dass es relativ simpel war, findet aktuell aber keine Datei mehr in der das umgesetzt ist. 

Hat jemand von euch zufällig eine Vorlage für mich? 
Die Datei ist bereits eine XLSM mit Makrofunktionalität.
Antworten Top
#2
Moin,

die einfache Hyperlink()-Formel hilft dir da schon weiter.

Viele Grüße
derHöpp
Antworten Top
#3
Hallo StrammerMax,

schau mal hier:
https://www.youtube.com/watch?v=pLTph31wyZY

Gruß
Fred
< es lebe die Hilfsspalte >
Antworten Top
#4
Moin!
Neben =HYPERLINK() und Hyperlink gibt es ja noch die eingebaute Funktionalität, die (leider) den meisten Benutzern unbekannt ist.
Sie dürfte meist ausreichen:
   
   

Außerdem gibt es in unserem Beispielbereich auch ein kleines Tutorial, wie man die Liste der Tabellennamen per Formel erzeugt:
https://www.clever-excel-forum.de/Thread...blattnamen

Das in eine HYPERLINK()-Formel einzuarbeiten, ist dann ein Klacks.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Huzzim
Antworten Top
#5
Hi,

ich habe eine Seite gefunden, wo ein Inhaltsverzeichnis mit klickbaren Bildern aller Webseiten erstellt wird.
Das sieht gut aus.

Dort wird jedes Mal das Inhalts-Arbeitsblatt gelöscht und ein neues erzeugt. Vermutlich, damit die Bilder nicht einzeln gelöscht werden müssen.

Hier der entsprechende Code-Schnipsel:
Code:
    'Delete existing TOC Gallery sheet
    Application.DisplayAlerts = False
    On Error Resume Next
    Worksheets(sTOCNAME).Delete
    On Error GoTo 0
    Application.DisplayAlerts = True
   
    'Add new TOC Gallery sheet
    Set wsTOC = Worksheets.Add(Before:=Worksheets(1))
    wsTOC.Name = sTOCNAME

Das führt dazu, daß der Codename des neuen Tabellenblattes sich am Ende immer hochzählt und das Makro nicht automatisch ablaufen kann bei Worksheet_Actvate, weil es ja nach dem löschen und Neu-Erzeugen weg ist.

Wie kann das gemacht werden, daß der komplette Inhalt (die Bilder und Links) des Blattes gelöscht wird, ohne das bestehende Blatt zu entfernen und ein neues am Ende einzufügen?
Oder wie kann automatisch hinter das neu erzeugte Blatt ein Worksheet_Activate-Code eingefügt werden?

Gruß Ralf
Antworten Top
#6
Hi,

das Workbook stellt ein übergreifendes Sheetactivate-Event zur Verfügung: https://learn.microsoft.com/en-us/office...etactivate

Viele Grüße
derHöpp
[-] Folgende(r) 1 Nutzer sagt Danke an derHoepp für diesen Beitrag:
  • Rabe
Antworten Top
#7
Hallo Ralf,

ohne Blattlöschung z.B. so:

Code:
'Delete existing TOC Gallery
    With Worksheets(1)
      .DrawingObjects.Delete
      .Cells.Delete
    End With
    Set wsTOC = Worksheets(1)

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rabe
Antworten Top
#8
Hi,

super, ich habe das nun so eingebunden hinter die Arbeitsmappe:

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
   If Sh.Name = "TOC Gallery" Then
      'MsgBox Sh.Name
       'Starten der Übersichtserstellung
       Call TOC_Gallery
   End If
End Sub

Funktioniert gut. Mal sehen, wie weit die CodeName-Zahlen hochgehen.

Danke.
Gruß Ralf

Hi Uwe,

(07.03.2023, 23:40)Kuwer schrieb: ohne Blattlöschung z.B. so:

danke, teste ich auch noch.

Gruß Ralf
Antworten Top
#9
Hi,

so habe ich es nun gelöst:

Code:
'Clearing existing TOC Gallery  (von Kuwer)
    Application.DisplayAlerts = False
    On Error Resume Next

    With Worksheets(sTOCNAME)
      .DrawingObjects.Delete
      .Cells.Delete
    End With
    Set wsTOC = Worksheets(sTOCNAME)
    wsTOC.Name = sTOCNAME
    
    On Error GoTo 0
    Application.DisplayAlerts = True

kombiniert mit dem Aufruf durch das Workbook_SheetActivate hinter "DieseArbeitsmappe"

Gruß Ralf
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste