Ich habe eine Exceldatei mit einem Tabellenblatt "Übersicht" und viele dazugehörige einzelne Tabellenblätter.
Folgenden Code habe ich bereits, der auch perfekt funktioniert:
--- Überträge die Namen der Tabellenblätter ab dem 6 Tabellenblatt in das Übersichtsblatt als _
Liste ---
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim lngWorksheets As Long 'Worksheets sind nur Tabellenblätter
Dim i As Long
lngWorksheets = ThisWorkbook.Worksheets.Count
ThisWorkbook.Sheets("Übersicht").Range("A11:A100000").ClearContents
For i = 6 To lngWorksheets
--- Fügt für jeden im Tabellenblatt Übersicht angelegten Eintrag einen Hyperlink zum jeweiligen  _
_
_
_
Tabellenblatt an ---
ThisWorkbook.Sheets("Übersicht").Hyperlinks.Add Anchor:=ThisWorkbook.Sheets("Übersicht").Cells(  _
_
_
_
11 + (i - 6), 1), Address:="", SubAddress:= _
"'" & ThisWorkbook.Worksheets(i).Name & "'!A1", TextToDisplay:=ThisWorkbook.Worksheets(i) _
_
_
_
.Name
Next i
-- Blendet alle Arbeitsblätter aus, die im Status "Change abgenommen" stehen haben ---
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
If wks.Cells(3, 5) = "Change abgenommen" Then
wks.Visible = xlSheetHidden
Else
wks.Visible = xlSheetVisible
End If
Next
End Sub
---
Nun möchte ich gerne noch erreichen, dass im Tabellenblatt "Übersicht", wo ja die Namen der Tabellenblätter aufgelistet sind, ebenfalls die jeweilige Zeile nur dann angezeigt wird, wenn das Tabellenblatt auch eingeblendet ist. Daher wurde ich gerne den ersten Code so modifizieren, dass nur eingeblendete Tabellenblätter aufgelistet werden.
Ich habe null Ahnung von VBA und bisher alles nur zusammenkopiert. Daher freue ich mich sehr über eine Lösung für mein "Problemchen".
Danke und eine gute Nacht :))