tollgemacht
Goto Top

Zeilen dynamisch ausblenden

Hallo Admins!

Ich habe hier eine Liste, und komme nicht weiter, vielleicht kann mir ja jemand von euch helfen?

Ich möchte Zeilen dynamisch ein und ausblenden.
Mit den Zeilen
Private Sub CheckBox1_Click()
    Dim Bereich
    Set Bereich = Worksheets("Übersicht").Rows("3:24")  
    Bereich.Hidden = True = Not (Bereich.Hidden)
 End Sub
sind die Zeilen fix vorgegeben. Meine Frage ist jetzt, ob ich das ganze dynamisch machen kann, indem ich einer Zelle einen fixen Name gebe, und dann die gesamte Zeile ausblenden kann. Vielleicht gibt es einen anderen, einfacheren Weg?

Ich bin für jede hilfreiche Antwort dankbar!
Gruß
Tollgemacht

Content-Key: 310221

Url: https://administrator.de/contentid/310221

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: 129813
Lösung 129813 19.07.2016 aktualisiert um 10:37:59 Uhr
Goto Top
Range("YourName").EntireRow.Hidden = True  
You can also search for specific cells, but then you have to tell us for what you are searching for.

Regards
Mitglied: Tollgemacht
Tollgemacht 19.07.2016 um 11:12:50 Uhr
Goto Top
I've an overview sheet with lots of Check Boxes.
With each Check Box i can show and hide rows. In the hidden areas are more buttons.
Atm im using this code
Private Sub CheckBox1_Click()
    Dim Bereich
    Set Bereich = Worksheets("Übersicht").Rows("203:224")  
    Bereich.Hidden = True = Not (Bereich.Hidden)
 End Sub
But if i want to add a row before 203 the makro wont work, cause i specify Rows("203:224")

I want to add a row in 200 and the Makro should hide and show the same Buttons like before. I think its called dynamic.

Regards
Mitglied: 129813
129813 19.07.2016 um 11:25:39 Uhr
Goto Top
Then, the above is right for you. Give one cell or the range a name then use the above to hide it.
Mitglied: colinardo
colinardo 19.07.2016 aktualisiert um 11:53:57 Uhr
Goto Top
Hallo Tollgemacht, Willkommen auf Administrator.de!
Du kannst auch die aktuelle Position der Checkbox ermitteln indem du die Eigenschaft TopLeftCell der jeweiligen Checkbox als Indikator nimmst und dann einen Offset benutzt welche Zeilen ausgeblendet werden sollen. Dann ist es egal ob du Zeilen dazwischen einfügst.

Hier ein Beispielsheet
toggle_hide_show_ranges_310221.xlsm

Grüße Uwe
Mitglied: Tollgemacht
Tollgemacht 19.07.2016 um 11:55:53 Uhr
Goto Top
Danke!
Mitglied: Tollgemacht
Tollgemacht 19.07.2016 um 11:56:13 Uhr
Goto Top
Thank you!
Mitglied: Tollgemacht
Tollgemacht 19.07.2016 um 13:26:17 Uhr
Goto Top
Unfortunately there's another problem i cant solve...
How can i convert the code
ActiveWindow.ScrollRow = 3
to a dynamic one?
Mitglied: colinardo
colinardo 19.07.2016 aktualisiert um 13:33:28 Uhr
Goto Top
Du musst uns schon erzählen anhand welchen Merkmals du wohin scrollen willst face-smile!

Du kannst die Row-Position jedes Range-Objects mit dessen Eigenschaft Row ermitteln. und dann ScrollRow zuweisen.

z.B. anhand der Position einer Checkbox
ActiveWindow.ScrollRow = CheckBox1.TopLeftCell.Row
Mitglied: Tollgemacht
Tollgemacht 19.07.2016 um 13:50:43 Uhr
Goto Top
Mein Fehler, habe kaum eine Ahnung, wie du sicher schon festgestellt hast...
Das Merkmal ist eine Zelle mit einem definierten Namen.
Mitglied: colinardo
Lösung colinardo 19.07.2016 aktualisiert um 13:54:25 Uhr
Goto Top
Zitat von @Tollgemacht:
Das Merkmal ist eine Zelle mit einem definierten Namen.
Dann
ActiveWindow.ScrollRow = Range("Bereichsname").Row  
Hier mal ein bißchen was zu Lesen zum Thema face-wink
Range-Objekt