Inhaltsverzeichnis mit VBA
#1
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


Angehängte Dateien
.xlsm   Inhaltsverzeichnis.xlsm (Größe: 10,74 KB / Downloads: 5)
Top
#2
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


Angehängte Dateien
.xlsm   Deckblatt Tabellennamen (Hyperlinks).xlsm (Größe: 53,75 KB / Downloads: 11)
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)
Top
#3
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#4
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, 17: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
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)
Top
#5
Hallo Ralf,

ok, da die Tabs nur ausgeblendet sein sollen aber nicht die Blätter Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
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
   

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
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)
Top


Gehe zu:


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