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

Forumthread: VBA - mehrere Tabellen ein- und ausblenden

VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 16:52:49
Lilli
Hallo Allerseits,
ich bräuchte bitte Hilfe in VBA.
Ich habe ein Makro aus dem Netz kopiert, wo ich ein Sheet einblenden oder ausblenden kann. Das funktioniert auch.
Ich möchte aber mit dem Umschalter mehrere Tabellen ein- oder ausblenden. Ich habe aber von VBA leider keine Ahnung.
Private Sub ToggleButton1_Click()
Application.ScreenUpdating = False   'Schaltet den Bildschirm aus
If ToggleButton1.Value = False Then
Worksheets("tbl201601").Visible = False
Else
Worksheets("tbl201601").Visible = True
End If
Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub

das sind die Blätte, die auf einmal ein- bzw. ausgeblendet werden sollen.
tbl201601
tbl201602
tbl201603
tbl201604
tbl201605
tbl201606
Vielen Dank für die Hilfe.
liebe Grüße,
Lilli :)
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 16:56:37
Hajo_Zi
Hallo Lilli,
es reicht für eine Tabelle Folgende Zeile
Worksheets("tbl201601").Visible = ToggleButton1.Value
Für die anderen Tabellen die analoge Zeile.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 17:11:23
Lilli
Hallo Hajo,
vielen Dank für die schnelle Antwort.
Ich habe folgendes versucht:
Private Sub ToggleButton121_Click()
Application.ScreenUpdating = False   'Schaltet den Bildschirm aus
If ToggleButton2.Value = False Then
Worksheets("tbl201601").Visible = False
Worksheets("tbl201602").Visible = False
Worksheets("tbl201603").Visible = False
Else
Worksheets("tbl201601").Visible = True
Worksheets("tbl201602").Visible = True
Worksheets("tbl201603").Visible = True
End If
Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub

aber es reagiert gar nicht. Es kommt keine Fehlermeldung und die Blätter werden weder ausgeblendet noch eingeblendet.
hast Du vielleicht eine Idee, woran das liegen könnte.
Liebe Grüße,
Lilli :)
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 17:16:35
UweD
Hallo
oben steht "ToggleButton121_Click()"
unten "ToggleButton2.Value = False Then"
sollte das nicht übereinstimmen?
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 18:00:03
Lilli
Hallo UweD,
das war der Fehler. Vielen Dank. Das hat jetzt gut geklappt.
Vielen Dank für Deine Mühe.
Liebe Grüße,
Lilli :)
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 17:18:03
Hajo_Zi
Hallo Lilli,
mein Vorschlag hat Dir also nicht gefallen. Ich bin dann raus, ich arbeite nicht für den Papierkorb.
Gruß Hajo
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 18:07:29
Lilli
Hallo Hajo,
ich habe nirgendswo geschrieben, dass mir Dein Vorschlag nicht gefallen hat.
Das habe ich geschrieben:
Ich habe folgendes versucht:
Private Sub ToggleButton121_Click()
Application.ScreenUpdating = False   'Schaltet den Bildschirm aus
If ToggleButton2.Value = False Then
Worksheets("tbl201601").Visible = False
Worksheets("tbl201602").Visible = False
Worksheets("tbl201603").Visible = False
Else
Worksheets("tbl201601").Visible = True
Worksheets("tbl201602").Visible = True
Worksheets("tbl201603").Visible = True
End If
Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub
aber es reagiert gar nicht. Es kommt keine Fehlermeldung und die Blätter werden weder ausgeblendet noch eingeblendet.
hast Du vielleicht eine Idee, woran das liegen könnte.

Ganz im Gegenteil. du hast mir etwas vorgeschlagen und ich habe versucht dies nach meine Kenntnisse umzusetzen. Den Code habe ich auch oben gelistet, damit man sehen kann, was ich gemacht
habe. Nur es hat nicht funktioniert.
UweD hat gesehen, dass ich in den Code ein Fehler hatte. Das habe ich jetzt korrigiert und es funktioniert jetzt.
Viele Grüße,
Lilli
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
12.04.2018 07:43:20
Lilli
Guten Morgen Dieter, :)
Vielen lieben Dank für Deinen Einsatz.
Das ist aber was ganz tolles! Was ist eigentlich ein UserForm1? Ich finde es echt klasse.
Vielen Dank für Deine Mühe Dieter.
liebe Grüße,
Lilli :)
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
12.04.2018 08:58:17
Dieter(Drummer)
Guten Morgen Lilli,
danke für Rückmeldung und hier eine Möglichkeit der Info über Userform:
http://www.vba-wordwelt.de/grundsaetzliches/elemente-im-vba-editor/userform/
UweD hat dir ja den Code jetzt in gekürzter Form (mit erster Info von Hajo) geschickt, der natürlich perfekt funktioniert.
Gruß und einen schönen Tag,
Dieter(Drummer)
Anzeige
AW: Lernvideo Userfoerm
12.04.2018 09:33:58
Dieter(Drummer)
Hallo Lilli,
hier noch eine Lernvideo (kostenlos) in Sachen Userform: https://www.excel-vba-lernen.de/userform1/
Gruß, Dieter(Drummer)
AW: Lernvideo Userfoerm
12.04.2018 10:47:13
Lilli
Hallo Dieter,
Danke für den Link. Das schaue ich mir auf jeden Fall an.
Da ist auch ein Link wie man sich auch bedanken kann - das finde ich sehr wichtig.
Liebe Grüße,
Lilli
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
12.04.2018 08:42:13
UweD
Hallo Lilli
nochmal den Gedanken von Hajo aufgegriffen...
das reicht an Code
- Die If- Abfrage kannst du sparen und direkt den Zustand des Button verwenden.
- Application.ScreenUpdating schaltet sich am Makroende automatisch wieder ein
Private Sub ToggleButton2_Click()
    Application.ScreenUpdating = False   'Schaltet den Bildschirm aus 
     
    With ToggleButton2
        Worksheets("tbl201601").Visible = .Value
        Worksheets("tbl201602").Visible = .Value
        Worksheets("tbl201603").Visible = .Value
        Worksheets("tbl201604").Visible = .Value
        Worksheets("tbl201605").Visible = .Value
        Worksheets("tbl201606").Visible = .Value
    End With

End Sub

LG UweD
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
12.04.2018 09:01:38
Lilli
hallo UweD,
vielen Dank, dass Du den Gedanken von Hajo aufgegriffen hast. Das habe ich gar nicht so verstanden. Ich bin froh, dass es Menschen gibt, die das hier verstehen. Ich bin nur eine Bastlerin. Vielen Dank für Deine Hilfe.
Ich teste es mal und gebe es gleich Bescheid.
Liebe Grüße,
Lilli :)
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
11.04.2018 18:07:52
Dieter(Drummer(
Hallo Lilli,
hier eine Musterdatei mi deinem Code, aber mit der richtigen Bezeichnug des ToggleButtons.
Der klickbare ToggelButton, Nr. 2, muss dann auch entsprechend der ToggleButton Nr. in deiner "If" Anweisung sein. Dann klappt es auch.
Gruß, Dieter(Drummer)
Musterdatei: https://www.herber.de/bbs/user/121012.xlsm
Anzeige
AW: VBA - mehrere Tabellen ein- und ausblenden
12.04.2018 11:16:36
Lilli
Hallo Hajo,
ich möchte mich bei Dir entschuldigen, da ich Deinen Ansatz gar nicht richtig verstanden habe. Dein Ansatz wurde aufgenommen und wurde mir noch mal erklärt was es an sich hat.
Es tut mir Leid, es war keine Böse Absicht, sondern viel mehr mein Unwissen in VBA-Bereich.
Viele Grüße,
Lilli :)
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

VBA: Mehrere Tabellen ein- und ausblenden


Schritt-für-Schritt-Anleitung

Um in Excel VBA mehrere Tabellenblätter gleichzeitig ein- oder auszublenden, kannst du den folgenden Code verwenden. Dieser Code funktioniert in Excel und ermöglicht es dir, mehrere Blätter mit einem einzigen Schalter zu steuern.

  1. Öffne den VBA-Editor mit ALT + F11.
  2. Füge einen ToggleButton in dein UserForm ein.
  3. Füge den folgenden Code in das entsprechende Modul ein:
Private Sub ToggleButton2_Click()
    Application.ScreenUpdating = False   'Schaltet den Bildschirm aus

    With ToggleButton2
        Worksheets("tbl201601").Visible = .Value
        Worksheets("tbl201602").Visible = .Value
        Worksheets("tbl201603").Visible = .Value
        Worksheets("tbl201604").Visible = .Value
        Worksheets("tbl201605").Visible = .Value
        Worksheets("tbl201606").Visible = .Value
    End With

    Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub

Wenn der ToggleButton aktiviert ist, werden die angegebenen Tabellenblätter eingeblendet, andernfalls werden sie ausgeblendet.


Häufige Fehler und Lösungen

  • Problem: Der ToggleButton funktioniert nicht.

    • Lösung: Überprüfe, ob die Bezeichnungsnummer des ToggleButtons im Code mit der im UserForm übereinstimmt.
  • Problem: Es werden keine Blätter ein- oder ausgeblendet.

    • Lösung: Stelle sicher, dass die Blätter die richtigen Namen haben (z.B. "tbl201601"). Ein Tipp ist auch, die Sichtbarkeit einzelner Blätter in einem Testcode vorab zu prüfen.

Alternative Methoden

Es gibt auch andere Möglichkeiten, um alle Tabellenblätter auf einmal ein- oder auszublenden. Eine Möglichkeit ist die Verwendung einer Schleife:

Private Sub ToggleButton2_Click()
    Application.ScreenUpdating = False   'Schaltet den Bildschirm aus

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name Like "tbl*" Then
            ws.Visible = ToggleButton2.Value
        End If
    Next ws

    Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub

Dieser Code durchläuft alle Blätter und blendet die ein, deren Namen mit "tbl" beginnen.


Praktische Beispiele

Stelle dir vor, du hast mehrere Tabellenblätter, die du je nach Bedarf ein- oder ausblenden möchtest. Dieses Beispiel zeigt, wie du die Sichtbarkeit von 6 Tabellenblättern mit einem ToggleButton steuern kannst.

Private Sub ToggleButton2_Click()
    Application.ScreenUpdating = False   'Schaltet den Bildschirm aus

    Worksheets("tbl201601").Visible = ToggleButton2.Value
    Worksheets("tbl201602").Visible = ToggleButton2.Value
    Worksheets("tbl201603").Visible = ToggleButton2.Value
    Worksheets("tbl201604").Visible = ToggleButton2.Value
    Worksheets("tbl201605").Visible = ToggleButton2.Value
    Worksheets("tbl201606").Visible = ToggleButton2.Value

    Application.ScreenUpdating = True   'Schaltet den Bildschirm wieder ein
End Sub

Hierbei ist zu beachten, dass der Code in Excel VBA für die Versionen 2007 und höher geeignet ist.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung zu deaktivieren. Dies beschleunigt den Prozess und verhindert Flackern.
  • Dokumentiere deinen Code mit Kommentaren, um später leichter nachvollziehen zu können, was jede Zeile bewirken soll.
  • Experimentiere mit der Sichtbarkeit von Tabellenblättern und nutze die If-Abfragen, um gezielt auf bestimmte Bedingungen zu reagieren.

FAQ: Häufige Fragen

1. Wie kann ich alle Tabellenblätter gleichzeitig ausblenden? Du kannst eine Schleife verwenden, um alle Blätter auszublenden, indem du ws.Visible = False für jedes Blatt setzt.

2. Kann ich auch nur bestimmte Blätter einblenden? Ja, du kannst die Sichtbarkeit gezielt für ausgewählte Blätter steuern, indem du deren Namen im Code angibst.

3. Was ist ein UserForm? Ein UserForm ist ein Dialogfeld in Excel, mit dem du Benutzeroberflächen für deine VBA-Projekte erstellen kannst. Sie ermöglichen eine benutzerfreundliche Interaktion mit deinem VBA-Code.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige