Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Zeilen ein/ausblenden mit Makro
Rico
Hallo Leute,
ich habe viele Varianten gelesen, aber entweder sind es solche die ich nicht möchte oder sie funktionieren bei mir dann doch nicht ganz.
Ich möchte per Kontrollkästchen (welches ist geeigneter, Formularsteuerelement oder ActivX-Steuerelement?) einen Zeilenbereich ein und ausblenden.
In meinem Versuchsbeispiel liegt das Kontrollkästchen selbst in Zelle "O28". Es ist grundsätzlich auf "nicht aktiv" eingestellt und somit sollen anfangs die Zeilen (35:39) nicht angezeigt werden
(1.Problem: selbst das gelinkt mir nicht, es ist immer so eingestellt wie es beim letzten Speichern war, später dazu mehr. In "P28" wird jeweils WAHR und FALSCH ausgegeben falls das nötig ist. Geht aber auch ohne wie ich merke, mit Bezug auf O28.
Bei Auswahl (Häckchen setzen bei "O28" - oder in "P28" WAHR) sollen die Zeilen (35:39) eingeblendet werden. Bei umgekehrter Auswahl (Häckchen entfernen bei "O28" - oder in "P28" FALSCH) sollen die Zeilen (35:39) wieder ausgeblendet werden.
Habe beim googeln mal gelesen, das ich dann 2 Makros brauche oder eine Umschaltfläche nutzen soll, aber Umschaltfläche ist wenig selbsterklärend, da kommen nur Rückfragen von Endusern. Geht aber zur Not auch.
Später sollen es bis zu 63 Kontrollkästchen sein = Anordnung von 63 aufzurufender Gebäude in ein und dem selben Tabellenblatt mit jeweiligem Zeilenbereich(xx:xx).
2. Problem: Wenn es nicht geht, dass alle Kontrollkästchen bei Start inaktiv sind, dann bräuchte ich wohl eine Schaltfläche zum Deaktivieren aller Kästchen. Mir wäre lieb es geht ohne weitere Schaltfläche.
3. Problem: Da ich absoluter Leihe bin und mir das hier für meine Diplomarneit alles per learning by doing beibringe, weiss ich auch nicht wie ich hintereinander weg den Befehl für das folgende Kontrollkästchen angebe. Also in "O29" das nächste Kästchen und Zeilen (40:44) ein/ausblenden. Bitte zeigen wie das geht :)
******
Damit ihr seht wie weit ich bisher war, hier der Versuch mit ausblenden der Zeile 35, _ einblenden hat dann auch bei etlichen Varianten leider nicht mehr geklappt.

Public Sub Worksheet_Change(ByVal Target As Range)
If Worksheets("Tabelle1").Range("P28").Value = Falsch Then
Worksheets("Tabelle1").Rows(35).Hidden = True
Else
Worksheets("Tabelle1").Rows(35).Hidden = False
End If
End Sub

******
Vielen Dank schonmal fürs grübeln
Rico

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen ein/ausblenden mit Makro
25.07.2012 15:41:56
UweD
Hallo
- Entwicklertools Panel auswählen
- Entwurfsmodus einstellen
- einfügen activeX- Elemente : hier kontrollkästchen
- doppelclick darauf
- Dann diese beiden Makros reinkopieren
- Entwurfsmodus wieder ausstellen
- Das Erste Makro schaltet beim aktivieren der Tabelle immer ein
- Das Zeite wechselt

Private Sub Worksheet_Activate()
' beim aktivieren dieses Blattes erfolgt "reset"
Worksheets("Tabelle1").Rows(35).Hidden = False
' weitere...
End Sub
Private Sub CheckBox1_Click()
With Worksheets("Tabelle1")
.Rows(35).Hidden = True = Not (.Rows(35).Hidden)
End With
End Sub

Gruß UweD

Die Datei https://www.herber.de/bbs/user/81159.xlsm wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Zeilen ein/ausblenden mit Makro
25.07.2012 15:49:46
UweD
Hallo
das ist noch was zu viel.
.Rows(35).Hidden = Not (.Rows(35).Hidden)
Gruß UweD
AW: Zeilen ein/ausblenden mit Makro
26.07.2012 10:06:35
Rico
Guten Morgen,
vielen Dank für die schnelle Antwort, Uwe.
Soweit hat das geklappt.
Wie bekomme ich einen Bereich von Zeile (35:39) hin? Den Doppelpunkt möchte er ja nicht, und ich will mir keinen WOLF schreiben wenn pro Checkbox 50-100 Zeilen ausgeblendet werden sollen.
Private Sub Worksheet_Activate()
' beim aktivieren dieses Blattes erfolgt "reset"
Worksheets("Tabelle1").Rows(35).Hidden = True
Worksheets("Tabelle1").Rows(36).Hidden = True
Worksheets("Tabelle1").Rows(37).Hidden = True
Worksheets("Tabelle1").Rows(38).Hidden = True
Worksheets("Tabelle1").Rows(39).Hidden = True
Worksheets("Tabelle1").Rows(40).Hidden = True
Worksheets("Tabelle1").Rows(41).Hidden = True
Worksheets("Tabelle1").Rows(42).Hidden = True
Worksheets("Tabelle1").Rows(43).Hidden = True
Worksheets("Tabelle1").Rows(44).Hidden = True
' weitere...
End Sub
=> hier dachte ich, er würde alle Zeilen beim Aufruf der Datei ausblenden, sodass von vornherein Übersichtlichkeit gegeben ist. Bei mir tut sich da nix.
Private Sub CheckBox1_Click()
With Worksheets("Tabelle1")
.Rows(35).Hidden = Not (.Rows(35).Hidden)
.Rows(36).Hidden = Not (.Rows(36).Hidden)
.Rows(37).Hidden = Not (.Rows(37).Hidden)
.Rows(38).Hidden = Not (.Rows(38).Hidden)
.Rows(39).Hidden = Not (.Rows(39).Hidden)
End With
End Sub
Private Sub CheckBox2_Click()
With Worksheets("Tabelle1")
.Rows(40).Hidden = Not (.Rows(40).Hidden)
.Rows(41).Hidden = Not (.Rows(41).Hidden)
.Rows(42).Hidden = Not (.Rows(42).Hidden)
.Rows(43).Hidden = Not (.Rows(43).Hidden)
.Rows(44).Hidden = Not (.Rows(44).Hidden)
End With
End Sub

=> klappt wunderbar, ist aber noch nicht Idiotensicher.
Wenn der Enduser die Zeilen ohne die Checkbox einblendet und es so abspeichert, dann ist die Auswahl für betreffende Zeilen umgekehrt, also mit Click in die Box wird aus- statt eingeblendet.
Das Problem löst sich von selbst wenn:
- bei Start der Datei alle angegebenen Zeilenbereiche Bsp. (35:39) und (40:44) immer ausgeblendet sind und
- bei Start der Datei alle Checkboxen inaktiv, also nicht ausgewählt sind.. geht das? Unter Steuerelement formatieren gibts dazu ja nichts.
Vielen Dank
Rico
Anzeige
AW: Zeilen ein/ausblenden mit Makro
26.07.2012 13:36:57
UweD
Hallo
a)
das mit mehreren Zeilen geht so... ("35:40")
Private Sub CheckBox1_Click()
Dim Bereich
Set Bereich = Worksheets("Tabelle1").Rows("35:40")
Bereich.Hidden = True = Not (Bereich.Hidden)
End Sub
b)
ich hatte das "Worksheet_Activate()" Ereignis des Tabellenblatts für den Reset verwendet.
du hast Recht, wenn das Blatt beim öffnen der Datei schon ausgewählt ist, dann wird es ja nicht neu aktiviert und das Makro läuft nicht ab.
Ich habe den Code in das "Workbook_Open()" von "DieseArbeitsmappe" eingebaut und auch noch abgeändert:
c)
idiotensicher...
So wird die Checkbox erst ausgeschaltet und dann sicherheitshalber noch alle Zeilen eingeblendet.
Private Sub Workbook_Open()
Dim Bereich
Set Bereich = Worksheets("Tabelle1").Rows("35:40")
Worksheets("Tabelle1").CheckBox1.Value = False
Bereich.Hidden = False
End Sub

Also komplett reset.
OK?
Gruß UweD
https://www.herber.de/bbs/user/81169.xlsm
Anzeige
AW: Zeilen ein/ausblenden mit Makro
26.07.2012 14:44:41
Rico
Perfekt, genau so wollte ich es.
Vielen vielen Dank UweD.

84 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige