Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblätter ausblenden bei Datei schließen

Tabellenblätter ausblenden bei Datei schließen
21.02.2018 07:24:21
Axel
Guten Morgen,
ich möchte beim Schließen einer Datei mit ca. 50 Tabellenblätter alle bis auf 2 ausblenden. Von den Tabellenblättern sind nur einige nicht ausgeblendet, der Rest ist auch schon so ausgeblendet.
Ich dachte an so etwas:
Private Sub Workbook_Close()
ActiveWorkbook.Sheets("Zweckbestimmung").Visible = True
ActiveWorkbook.Sheets("EC-Export").Visible = True
ActiveWorkbook.Sheets("WM-Tool").Visible = xlSheetHidden
ActiveWorkbook.Sheets("AM-Tool").Visible = xlSheetHidden
End Sub
Aber das muss doch irgendwie einfacher gehen und vor allem, es sind ja nicht alle "Active", oder?
Vielen Dank schon mal vorab.
Axel
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 07:38:40
Werner
Hallo Axel,
so:
Private Sub Workbook_Close()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Blatt1", "Blatt2" 'Blätter die nicht ausgeblendet werden sollen
'nichts machen
Case Else
ws.Visible = False
End Select
Next ws
End Sub
Gruß Werner
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 08:00:29
Axel
Hallo Werner,
tausend Dank. Könnte ich auch
ws.Visible = xlSheetVeryHidden
schreiben?
Gruß
Axel
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 08:02:27
Werner
Hallo Axel,
ja, kannst du -einfach ausprobieren.
Gruß Werner
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 12:07:14
Axel
Hallo Werner,
wenn ich die Arbeitsmappe schließe und danach neu öffne, sind die zuletzt geöffneten Arbeitsmappen noch sichtbar.
Woran kann das liegen?
Danke und Gruß
Axel
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 13:07:49
Werner
Hallo Axel,
warum machst du den Code nicht ins Workbook_open?
Gruß Werner
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 13:56:15
Axel
Hi Werner, das habe ich gemacht:
Private Sub Workbook_Open()
Dim ii As Integer
For ii = 2 To Sheets.Count 'Alle Tabellenblätter bis auf Zweckbestimmung werden  _
ausgeblendet
Sheets(ii).Visible = False 'ToDo bei Finalisierung: später auf xlSheetVeryHidden setzen
Next ii
UserForm1.Show
End Sub
Aber dann sieht man erst mal kurz die zuletzt geöffneten Tabellenblätter. Das soll so nicht sein.
Ich hatte noch einen anderen Ansatz probiert:
Private Sub ActiveWorkbook_Close()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
If ws.Name("Zweckbestimmung", "EC-Export") Then
ws.Visible = xlSheetVisible
Else: ws.Visible = xlSheetHidden
Next ws
End Sub
Das funktioniert aber auch nicht...
Bin ratlos.
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
21.02.2018 20:03:29
Werner
Hallo Axel,
Private Sub Workbook_Open()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Zweckbestimmung", "EC Export" 'Blätter die nicht ausgeblendet werden sollen
'nichts machen
Case Else
ws.Visible = xlSheetVeryHidden
End Select
Next ws
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
22.02.2018 07:21:38
Axel
Hallo Werner,
ich konnte Deinen Code erst heute ausprobieren... Danke dafür.
Das funktioniert auch, aber ist nicht das, was ich brauche. Ich möchte wirklich beim Schließen der Datei alle Tabellenblätter ausblenden.
Wenn ich das "Private Sub Workbook_Open()" durch "...Close()" ersetze, funktioniert es nicht.
Wäre toll, wenn Du noch eine Idee hast.
Vielen Dank vorab
Axel
Anzeige
AW: Tabellenblätter ausblenden bei Datei schließen
22.02.2018 12:16:46
Werner
Hallo Axel,
dann mußt du im Bevore_Close dafür sorgen, dass das Workbook auch gespeichert wird.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Zweckbestimmung", "EC Export" 'Blätter die nicht ausgeblendet werden sollen
'nichts machen
Case Else
ws.Visible = xlSheetVeryHidden
End Select
Next ws
ThisWorkbook.Save
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter ausblenden beim Schließen einer Excel-Datei


Schritt-für-Schritt-Anleitung

Um beim Schließen einer Excel-Datei alle Tabellenblätter bis auf zwei auszublenden, kannst du den folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Im linken Bereich, klicke mit der rechten Maustaste auf Diese Arbeitsmappe und wähle Code anzeigen.

  3. Füge den folgenden Code in das Editor-Fenster ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Dim ws As Worksheet
       Application.ScreenUpdating = False
       For Each ws In ThisWorkbook.Worksheets
           Select Case ws.Name
               Case "Zweckbestimmung", "EC Export" 'Die Blätter, die sichtbar bleiben sollen
                   'nichts machen
               Case Else
                   ws.Visible = xlSheetVeryHidden 'Blätter ausblenden
           End Select
       Next ws
       ThisWorkbook.Save 'Speichern der Arbeitsmappe
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und teste die Funktionalität, indem du die Arbeitsmappe schließt.


Häufige Fehler und Lösungen

  • Fehler: Die ausgeblendeten Blätter sind beim Öffnen der Datei sichtbar.

    • Lösung: Verwende Workbook_Open() anstelle von Workbook_Close(), um die Blätter beim Öffnen auszublenden. Stelle sicher, dass Application.ScreenUpdating auf False gesetzt wird, um ein Flackern zu vermeiden.
  • Fehler: Fehler beim Speichern der Datei.

    • Lösung: Stelle sicher, dass die Arbeitsmappe nicht schreibgeschützt ist. Überprüfe auch, ob du ausreichende Berechtigungen hast.

Alternative Methoden

Wenn du eine Excel-Datei hast, in der du nur bestimmte Tabellen anzeigen möchtest, kannst du auch die Methode ws.Visible = xlSheetHidden verwenden, um die Blätter auszublenden, anstatt sie vollständig zu verstecken. Das ist nützlich, wenn du die Blätter später wieder einblenden möchtest.

ws.Visible = xlSheetHidden 'Blatt ausblenden

Um sie zurückzuholen, kannst du ws.Visible = xlSheetVisible verwenden.


Praktische Beispiele

  1. Alle Blätter außer zwei ausblenden:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Dim ws As Worksheet
       For Each ws In ThisWorkbook.Worksheets
           If ws.Name <> "Zweckbestimmung" And ws.Name <> "EC Export" Then
               ws.Visible = xlSheetVeryHidden
           End If
       Next ws
       ThisWorkbook.Save
    End Sub
  2. Nur ein Blatt sichtbar lassen:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Dim ws As Worksheet
       For Each ws In ThisWorkbook.Worksheets
           If ws.Name = "Zweckbestimmung" Then
               ws.Visible = xlSheetVisible
           Else
               ws.Visible = xlSheetVeryHidden
           End If
       Next ws
       ThisWorkbook.Save
    End Sub

Tipps für Profis

  • Verwende xlSheetVeryHidden, um sicherzustellen, dass die Blätter nicht einfach über die Excel-Oberfläche wieder eingeblendet werden können.
  • Du kannst auch UserForms oder spezielle Schaltflächen erstellen, um die Sichtbarkeit der Blätter dynamisch zu steuern.
  • Teste deinen VBA-Code gründlich, um sicherzustellen, dass keine Fehler beim Ausblenden der Blätter auftreten.

FAQ: Häufige Fragen

1. Wie kann ich ausgeblendete Blätter wieder einblenden? Um ausgeblendete Blätter wieder sichtbar zu machen, verwende den Befehl ws.Visible = xlSheetVisible in einem neuen Makro.

2. Was passiert, wenn ich die Excel-Datei schließe und nicht speichere? Wenn du die Datei schließt, ohne zu speichern, bleiben die Statusänderungen der Blätter nicht erhalten. Stelle sicher, dass du die Arbeitsmappe speicherst, um die Ausblendungs-Einstellungen zu behalten.

3. Kann ich die Änderungen rückgängig machen? Ja, um die Blätter wieder sichtbar zu machen, kannst du die Excel-Datei öffnen und ein Makro ausführen, das die Sichtbarkeit der Blätter zurücksetzt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige