Registriert seit: 12.02.2021
Version(en): 10.0
Hallo,
Ich habe ungefähr 80 Arbeitsblätter in einer Arbeitsmappe. Da man zur Bearbeitung dieser Datei nicht immer alle Arbeitsblätter benötigt, bin ich auf der Suche nach einer benutzerfreundlichen Hilfe zur besseren Übersicht . Dabei stelle ich mir eine Auswahldialogbox vor, in der alle Arbeitsblätter aufgelistet sind und per Haken ausgewählt werden können. Die nicht ausgewählten Arbeitsblätter sollen ausgeblendet und nur die mit Haken versetzten Arbeitsblätter eingeblendet werden.
Hat hier vielleicht jemand eine Idee.
Vielen Dank
Registriert seit: 16.08.2020
Version(en): 2019 64bit
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
eine Alternative:
Zunächst alle vorhandenen Blätter in einem Tabellenblatt auflisten (im Beispiel in Spalte A ab A2).
Code:
Sub Blätter_auflisten()
Dim x As Long
For x = 1 To ThisWorkbook.Worksheets.Count
Cells(x + 1, 1) = Worksheets(x).Name
Next x
End Sub
In Spalte B markierst Du nun die einzelnen Blätter, die sichtbar sein sollen, mit einem x (das Blatt mit der Auflistung der einzelnen Blätter sollte immer sichtbar bleiben).
Dann lass diesen Code laufen bzw. weise ihn einem Button zu:
Code:
Sub ein_ausblenden()
Dim wS As Worksheet
For Each wS In ThisWorkbook.Worksheets
wS.Visible = WorksheetFunction.VLookup(wS.Name, Range("A:B"), 2, 0) = "x"
Next wS
End Sub
Registriert seit: 12.02.2021
Version(en): 10.0
@ Boris
Sorry für die späte Rückmeldung.
Vielen Dank. Es ist genau das, nachdem ich gesucht habe.
Das Makro funktioniert wie gewünscht.
Allerdings habe ich nun das Problem, dass ich nicht mit der Zelle A2 beginnen möchte sondern mit B10 (=Name der Arbeitsblätter) und C10 (x").
Meine Anpassungen des Codes scheitern leider.
Wie muss ich den Code anpassen? Könntest du mir nochmal helfen ?
Viele Grüße und Danke im Voraus
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi,
dann so:
Code:
Sub Blätter_auflisten()
Dim x As Long
For x = 1 To ThisWorkbook.Worksheets.Count
Cells(x + 9, 2) = Worksheets(x).Name
Next x
End Sub
Sub ein_ausblenden()
Dim wS As Worksheet
For Each wS In ThisWorkbook.Worksheets
wS.Visible = WorksheetFunction.VLookup(wS.Name, Range("B:C"), 2, 0) = "x"
Next wS
End Sub
Registriert seit: 12.02.2021
Version(en): 10.0
Klasse
Vielen Dank