Habt Ihr auch schon einmal eine Excel Datei bekommen in der vielle Tabellenblätter ausgeblendet waren und Ihr dann einzeln jedes Blatt einblenden musstet?
Ich leider auch.
Noch müsahmer ist es jedoch wenn ich selber an einem Excel Modell arbeite welches zu 97% fertig ist, in dem ich sämtliche für die User nicht relevanten Tabellenblätter ausgeblendet habe, und dann bei jedem Makel dass ich finde alles wieder ein- und ausblenden muss bis die Datei perfekt ist!
Das hat jetzt aber alles ein Ende.
Makro zum Ein- und Ausblenden aller Tabellenblätter in einer Excel Datei
Der folgende Code erlaubt es einem alle Tabellenblätter auf einmal ein- oder auszublenden. Das spezielle daran ist dass sich Excel merkt welche Tabellenblätter zum Anfang ausgeblendet waren und Ihr diese mit einem weiteren klick auf den Makro wieder in den original Zustand versetzen könnt. Sogar “Very Hidden” Sheets können so eingeblendet werden.
Ihr müsst den Makro auf eine Arbeitsmappe anwenden bei der auch Tabellenblätter versteckt sind: Sonst passiert nichts!
Hinweis: Dies funktioniert nur so lange Excel geöffnet bleibt, die Arbeitsblätter nicht umbenannt warden, und Ihr den Makro bei nur jeweils einem Arbeitsdatei einsetzt!
Den folgenden Code könnt Ihr kopieren und in ein neues Makro Modul einfügen, zum Beispiel in Eurem persönlichen Excel Datei (z.B. Personal.xlam) welche Ihr immer wenn Ihr Excel öffnet benutzen könnt!
Ich hoffe es hilft Euch in Eurer täglichen Arbeit:
Sub ShowHideAllSheets() 'Author: Lukas Rohr 'Website: www.excelnova.org 'Date: 09.09.2015 'Version: 1.0 'Description: Shows all sheets in Workbook and remembers if these ' were hidden or very hidden to be reset upon running macro again 'CAUTION: Settings are lost if workbook is closed! Static arrWksStatus As Variant Static bIsOn As Boolean Dim wksCount As Integer Dim wks As Worksheet Dim i As Integer On Error Resume Next Application.ScreenUpdating = False wksCount = ActiveWorkbook.Worksheets.Count 'Get count of worksheets With ActiveWorkbook 'Check if wkbstructure is protected If .ProtectStructure = True Then MsgBox ("Die Struktur der Arbeitsdatei ist gesperrt." & vbNewLine _ & "Bitte die Datei entsperren um den Makro zu benutzen." & vbNewLine _ & "Der Makro wird nicht ausgeführt.") GoTo EndFast End If 'Main body of programm If bIsOn = False Then 'Check if array is used ReDim arrWksStatus(1, wksCount) 'Dim array if it was empty For i = 1 To wksCount 'Fill array with name and visibility status for each wks arrWksStatus(0, i) = .Worksheets(i).Name arrWksStatus(1, i) = .Worksheets(i).Visible .Worksheets(i).Visible = xlSheetVisible 'show wks Next i bIsOn = True Else For i = 1 To wksCount .Worksheets(arrWksStatus(0, i)).Visible = arrWksStatus(1, i) 'reset visibility status of wks to original Next i Set arrWksStatus = Nothing 'kill array bIsOn = False End If End With EndFast: Application.ScreenUpdating = True End Sub