Clever-Excel-Forum

Normale Version: Inhaltsverzeichnis mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen , 

 Ich bin ganz neu bei Excel VBA und wollte mal fragen mit welchem Code ich meine Tabs in der Datei automatisch schließen kann . Da meine normalen Excel Arbeitsmappen immer größer werden möchte ich so was wie ein Inhaltsverzeichnis erstellen. In der Arbeitsmappe soll nur ein Tab zusehen sein und alle anderen sind ausgeblendet. Das erste Tab soll alle Namen der Arbeitsblätter enthalten wo ich mittels eines Hyperlinks dann auf die einzelnen Tabs gehen kann. Wenn ich dann zurück zum Inhaltsverzeichnis springe soll sich das Tab automatisch wieder schließen so das ich dann wieder nur das Tab mit dem Inhaltsverzeichnis sehen kann. Ich hab unten mal eine Beispieldatei mit eingefügt . Hoffe ich hab es einigermaßen verständlich erklärt. 

und Danke für die Hilfe 

Gruß
Andreas
Moin!
Schau mal in den Anhang.
Enthält keinen VBA-Code!
Dennoch .xlsm, weil eine uralte Excel4-Makro-Funktion als Namensdefinition drin ist.
Jetzt musst Du nur noch in den Optionen die Anzeige der Tabellenregister ausschalten.
Auf den einzelnen Blättern würde auch der Rücksprung zum Deckblatt reichen.

Gruß Ralf
Hallöchen,

entsprechend der Aufgabenstellung fehlen noch zwei Codes.

In DieseArbeitsmappe dieser:

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'Wenn der Blattname nicht Deckblatt ist, dann Blatt ausblenden
If Sh.Name <> "Deckblatt" Then Sh.Visible = False
End Sub

und im Tabellenblattmodul vom Deckblatt dieser:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Fehlerbehandlung (falls Blatt nicht existiert)
'Weiter mit naechster Anweisung
On Error Resume Next
'Wenn eine Zelle im Bereich A2:A100 gewaehlt wurde, dann
'Hinweis: ggf. sollte auch geprueft werden,
'ob nur eine Zelle gewaehlt wurde!
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
'Mit dem Blatt mit dem Namen aus der gewaehlten Zelle
With Sheets(Target.Value)
    'sichtbar ein
    .Visible = True
    'aktivieren
    .Activate
'Ende Mit dem Blatt mit dem Namen aus der gewaehlten Zelle
End With
'Ende Wenn eine Zelle im Bereich A2:A100 gewaehlt wurde, dann
End If
End Sub


Die Hyperlinks in der Formel können entfallen, da sie bei ausgeblendeten Blättern wirkungslos sind Sad
Moin André!
Hast Du meinen Hinweis übersehen?
Ich brauche keinen Code, sondern arbeite mit Hyperlinks, die deshalb natürlich nicht entfallen können.
(12.09.2018, 16:53)RPP63 schrieb: [ -> ]Dennoch .xlsm, weil eine uralte Excel4-Makro-Funktion als Namensdefinition drin ist.
Jetzt musst Du nur noch in den Optionen die Anzeige der Tabellenregister ausschalten.

Gruß Ralf
Hallo Ralf,

ok, da die Tabs nur ausgeblendet sein sollen aber nicht die Blätter Smile
Wobei ich ja eher davon ausgehe, dass der TE folgenden Tipp nicht kennt:
Rechtsklick auf die Tabellennavigation unten links,
die ersten Buchstaben des Blattnamens zügig eintippen, Enter
[attachment=19822]

Für Tastatur-Junkies, wie ich einer bin, könnte auch ein Einzeiler in der Personal.xlsb, aufgerufen durch einen Shortcut wie Strg+Umschalt+D, die Bedienung beschleunigen:
Code:
Application.Dialogs(xlDialogActivate).Show