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

Forumthread: VBA für CheckBox Zeilen aus und einblenden

VBA für CheckBox Zeilen aus und einblenden
31.01.2016 18:50:30
Sven
Hallo Leute,
Ich habe eine exeltabelle mit mehreren Blättern . Eines davon heißt Einstellungen und enthält alle relevanten Daten für die nächsten 12 Blätter .
Auf den Formular Einstellungen , sollen mehrere Checkboxen (activex) sein welche per Makro auf den anderen Blättern Verschiedene Zeilen aus und einblenden sollen . ZB Zeile 6, 10 , 34 und Zeile 50.
Habe schon einiges gefunden und ausprobiert , aber ohne Erfolg .
Kann mir hier jemand helfen ?
Gruß
Sven

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
31.01.2016 19:24:49
Oberschlumpf
Hi Sven
Meinst du so?
https://www.herber.de/bbs/user/103170.xlsm
In meiner Datei gibt es zur Anschauung 2 Tabellen. "Einstellungen" und "Blatt1".
In "Einstellungen" befindet sich eine ActiveX-Checkbox.
- wenn Haken gesetzt, werden in "Blatt1" die Zeilen 6,10,34+50 ausgeblendet
- wenn Haken entfernt, werden in "Blatt1" die Zeilen 6,10,34+50 eingeblendet
Hilfts?
Ciao
Thorsten

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
31.01.2016 20:28:09
Sven
Hallo Thorsten ,
Super :-) Danke für die schnelle Hilfe .
Wenn ich dann noch eine checkbox auf Einstellungen mache , die dann wiederum andere Zeilen auf Blatt1 aus und einblendet , würde sich das dann in die Quere kommen oder zu fehlfunktionen führen ?
Gruß
Sven

AW: VBA für CheckBox Zeilen aus und einblenden
31.01.2016 21:29:08
Oberschlumpf
Hi Sven,
so lange die 2 Checkboxen nicht die selben Zeilen aus/einblenden sollen, werden keine Probleme auftreten.
Probier es doch einfach mal aus.
Ciao
Thorsten

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
01.02.2016 07:52:18
Sven
Ok dann bin ich beruhigt :-) mir hat mal jemand gesagt das Steuerelemente gaaaanz einfach sind :-) .
Ich muss für das Blatt 15 checkboxen erstellen . Muss ich da für jede box ein neues Modul erstellen, oder kann das alles im dem einen rein ?
Sorry für die blöden Fragen :-)
Gruß
Sven

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
01.02.2016 17:32:39
Oberschlumpf
1. Öffne deine Exceltabelle
2. Klick im Menü auf Entwicklertools...
3. Klick auf Einfügen...
4. Klick auf das ActiveX-Steuerelement "Kontrollkästchen"
5. Klick in der Tabelle an der Stelle, wo das Kästchen platziert werden soll
6. Mit rechten Mausklick aufs Kästchen + Eigenschaften kannst du Name, Anzeigetext usw einstellen
7. Mit rechten Mausklick aufs Kästchen + Code anzeigen öfnnet sich der VBE, und du kannst Code für das Klick-Ereignis eintragen
Dort trägst du den Code ein, der in meiner Bsp-Datei für das Kästchen angezeigt wird.
Natürlich musst du für jedes Kästchen die Zeilen anpassen, die ein/ausgeblendet werden sollen.
Wiederhole die Schritte 2 - 7 so oft, bis alles erledigt ist.
Es gibt (eigtl :-) ) keine doofen Fragen. Frag also uns alles, was du wissen möchtest.
Frag aber bitte nicht alles im gleichen Thread - erstell neue Threads.
Und es ist wirklich nicht schwer, Steuerelemente mit Code "Leben einzuhauchen".
Nur am Anfang halt ist alles ungewohnt.
Hilft denn meine "Anleitung"?
Ciao
Thorsten

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
02.02.2016 10:19:48
Sven
Hallo Thorsten,
danke für die Geduld mit mir :-)
https://www.herber.de/bbs/user/103219.xls
Also irgendwas habe ich Falsch gemacht und das schon bei der ersten Checkbox.
Die Zeilen werden ausgeblendet aber nicht mehr eingeblendet .
Ich habe das 1:1 von dir übernommen , bin wohl zu blöd dafür :-(
Findest du den Fehler ?
Gruß
Sven

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
02.02.2016 11:22:02
Oberschlumpf
Hi Sven
Du musst auch diese Zeile beachten/anpassen:
If .Rows(6).EntireRow.Hidden = False Then

Diese Zeile prüft, ob in der Tabelle die Zeile 6 ein/oder ausgeblendet ist.
In deiner Eingangsfrage hattest du "Zeile 6, 10 , 34 und Zeile 50." geschrieben.
Und Zeile 6 ist somit in meiner Bsp-Datei, die erste Zeile, die ein/ausgeblendet wird.
Aber nun hast du die Zeilen angepasst. Zeile 7 ist nun die erste Zeile.
Die obige Codezeile ändere also um in
If .Rows(7).EntireRow.Hidden = False Then

und teste noch mal, obs funktioniert.
Hilfts?
Ciao
Thorsten
p.s. am "saubersten" wäre die Programmierung, wenn man überprüft, ob im jeweiligen Kontrollkästchen ein Haken drin ist oder nicht.
Das wäre aber viel aufwendiger als wie jetzt die jeweils 1. Zeile zu überprüfen, ob ein- oder ausgeblendet.

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
02.02.2016 22:16:32
Sven
Ach Thorsten, auf die 7 hätte ich auch kommen können , wenn ich richtig hin geschaut hätte .
Jetzt habe ich versucht mittels einer zweiten Checkbox die zeilen 8,26,44,62,80,98 ausblenden zu lassen jedoch hat das irgendwie nicht geklappt , dann funktioniert irgendwie Garnichts mehr .
Ich hab es im übrigen jetzt so gemacht , das die Zeilen eingeblendet werden wenn der Hacken drinnen ist .
Was muss ich machen bzw. beachten wenn ich jetzt für die fortlaufenden zeilen auch Checkboxen erstellen will ?
Gruß
Sven

Anzeige
AW: VBA für CheckBox Zeilen aus und einblenden
03.02.2016 06:47:32
Oberschlumpf
Hi Sven
Versuch es hiermit:
https://www.herber.de/bbs/user/103243.xls
In meiner 1. Datei konnte es für mehr als 1 ChkBox nicht funktionieren, da der Code ja unterscheiden können muss, was soll Box1 machen, was Box2...usw.
Jetzt klappt es mit 2 CheckBoxes...und sollte so fortgeführt auch mit 15 klappen.
Hilfts denn?
Ciao
Thorsten

Anzeige
hier, ne Übungsaufgabe für dich :-)
03.02.2016 07:20:40
Oberschlumpf
Hi Sven
n ganz anderer Ansatz (dafür aber viieel weniger Code erforderlich!):
https://www.herber.de/bbs/user/103244.xls
ChkBox 1-5 hab ich für dich eingetragen
in Januar sind - alle - Zeilen ausgeblendet :-)
Du musst jetzt ChkBox 6 - 15 zum Leben erwecken :-)
Wenn noch Fragen, dann stell sie...ich hab keine Zeit...muss zur Arbeit.
Ciao
Thorsten

Anzeige
AW: hier, ne Übungsaufgabe für dich :-)
05.02.2016 08:41:27
Sven
Hallo Thorsten,
die Übungsaufgabe sieht wesentlich einfacher aus :-) .
Ich werd mich mal daran probieren und es auf die anderen Blätter übertragen .
Sorry für die späte Antwort , war die Tage auf Arbeit ziemlich gebunden .
Vielen vielen Dank für die hilfe :-)
Gruß Sven

Anzeige
AW: hier, ne Übungsaufgabe für dich :-)
05.02.2016 14:14:02
Sven
Hm jetzt ist es endgültig durcheinander 😳
Die erste Zeile im Januar ist standartmässig ausgeblendet und die anderen eingeblendet , das hängt wohl damit zusammen das ich jetzt noch checkboxen für den Februar erstellt habe .

AW: hier, ne Übungsaufgabe für dich :-)
05.02.2016 14:07:18
Sven
Hallo Thorsten,
Also mit der Übungsaufgabe klappt es super ( zumindest im Januar ) .
Wenn ich da jetzt noch die Funktionen für Februar im Modul einfüge , sind die Zeilen nicht standartmässig ausgeblendet , sondern eingeblendet und ich muss sie mit der checkbox ausblenden , also Gegensatz vom Januar .
Behackt sich da was ?
Gruß Sven

Anzeige
AW: hier, ne Übungsaufgabe für dich :-)
05.02.2016 17:43:07
Oberschlumpf
Hi Sven
Sorry, ich werde jetzt - nicht - die Datei so "nachbauen", wie du sie doch schon bis jetzt weiter erstellt hast.
Zeig uns doch mal deine Datei - per Upload - mit all den zusätzlichen CheckBoxen + zusätzlichem Code, was du bis jetzt schon hinzugefügt hast.
Ciao
Thorsten
Grundsätzlich gilt:
Zeilen, die OHNE Haken in der Checkbox AUSgeblendet sein sollen:
- alle Haken aus allen zuständigen Checkboxen entfernen
- "per Hand" alle betroffenen Zeilen, z Bsp für Januar, ausblenden
Wenn du - ab jetzt - einen Haken setzt, werden die damit verknüpften Zeilen angezeigt
Zeilen, die OHNE Haken in der Checkbox EINgeblendet sein sollen:
- alle Haken aus allen zuständigen Checkboxen entfernen
- "per Hand" alle betroffenen Zeilen, z Bsp für Februar, einblenden
Wenn du - ab jetzt - einen Haken setzt, werden die damit verknüpften Zeilen - nicht - angezeigt

Anzeige
ne Antwort wäre mal schön...owT
04.02.2016 19:44:07
Oberschlumpf
;
Anzeige
Anzeige

Infobox / Tutorial

VBA für CheckBox: Zeilen ein- und ausblenden


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Tabelle.
  2. Klicke im Menü auf Entwicklertools.
  3. Klicke auf Einfügen und wähle das ActiveX-Steuerelement Kontrollkästchen.
  4. Klicke in der Tabelle an die Stelle, wo das Kästchen platziert werden soll.
  5. Mache einen Rechtsklick auf das Kästchen und gehe zu Eigenschaften, um Name und Anzeigetext einzustellen.
  6. Mit einem Rechtsklick auf das Kästchen und Code anzeigen öffnet sich der Visual Basic Editor (VBE).
  7. Trage den Code für das Klick-Ereignis ein, um zu steuern, welche Zeilen ausgeblendet oder eingeblendet werden sollen. Zum Beispiel:

    Private Sub CheckBox1_Click()
       If CheckBox1.Value = True Then
           Rows("6:10").EntireRow.Hidden = False
       Else
           Rows("6:10").EntireRow.Hidden = True
       End If
    End Sub

Wiederhole die Schritte für jede Checkbox, die du erstellen möchtest. Achte darauf, die Zeilen im Code entsprechend anzupassen.


Häufige Fehler und Lösungen

  • Problem: Die Zeilen werden nicht wieder eingeblendet, nachdem sie ausgeblendet wurden.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass die Bedingungen für das Einblenden korrekt sind. Zum Beispiel könnte eine Zeile wie If .Rows(6).EntireRow.Hidden = False Then angepasst werden müssen.
  • Problem: Mehrere Checkboxen funktionieren nicht gleichzeitig.

    • Lösung: Stelle sicher, dass jede Checkbox unterschiedliche Zeilen steuert und dass kein Code-Konflikt besteht. Du kannst den Code für jede Checkbox individuell anpassen.

Alternative Methoden

Wenn du keine VBA-Programmierung nutzen möchtest, kannst du auch die Datenfilter-Funktion in Excel verwenden:

  1. Markiere die gesamte Tabelle.
  2. Klicke auf Daten > Filter.
  3. Verwende die Dropdown-Pfeile in den Header-Zellen, um Zeilen basierend auf den Kriterien ein- oder auszublenden.

Diese Methode ist einfacher, bietet jedoch nicht die gleiche Flexibilität wie eine Checkbox-VBA-Lösung.


Praktische Beispiele

  • Beispiel 1: Du hast eine Checkbox, die die Zeilen 6, 10, 34 und 50 auf "Blatt1" steuert. Der Code könnte folgendermaßen aussehen:

    Private Sub CheckBox1_Click()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("Blatt1")
    
       If CheckBox1.Value = True Then
           ws.Rows("6").Hidden = False
           ws.Rows("10").Hidden = False
           ws.Rows("34").Hidden = False
           ws.Rows("50").Hidden = False
       Else
           ws.Rows("6").Hidden = True
           ws.Rows("10").Hidden = True
           ws.Rows("34").Hidden = True
           ws.Rows("50").Hidden = True
       End If
    End Sub
  • Beispiel 2: Wenn du eine zweite Checkbox für weitere Zeilen hast, kannst du den Code entsprechend anpassen, um diese Zeilen zu steuern.


Tipps für Profis

  • Verwende Benannte Bereiche für die zu steuernden Zeilen, um deinen Code leserlicher zu machen.
  • Dokumentiere deinen Code gut, um später Änderungen einfacher vornehmen zu können.
  • Teste jede Checkbox einzeln, bevor du sie in dein Hauptprojekt integrierst.
  • Überlege, ob du eine Schleife einfügen möchtest, um mehrere Checkboxen effizienter zu verwalten.

FAQ: Häufige Fragen

1. Wie viele Checkboxen kann ich in einer Excel-Datei verwenden? Du kannst theoretisch so viele Checkboxen verwenden, wie du möchtest, jedoch kann die Leistung der Datei beeinträchtigt werden, wenn zu viele Steuerelemente vorhanden sind.

2. Was mache ich, wenn die Checkboxen nicht richtig funktionieren? Überprüfe deinen VBA-Code auf Fehler und stelle sicher, dass jede Checkbox die richtigen Zeilen steuert. Achte auch darauf, dass keine Konflikte zwischen den Checkboxen bestehen.

3. Kann ich die Checkboxen auch in Google Sheets verwenden? Die ActiveX-Steuerelemente sind spezifisch für Excel. In Google Sheets gibt es andere Möglichkeiten zur Interaktion, z. B. mit Apps Script.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige