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

Printed on: April 19, 2024 at 15:04 o'clock

Mitglied: 129813
Solution 129813 Jul 19, 2016 updated at 08:37:59 (UTC)
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
Member: Tollgemacht
Tollgemacht Jul 19, 2016 at 09:12:50 (UTC)
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 Jul 19, 2016 at 09:25:39 (UTC)
Goto Top
Then, the above is right for you. Give one cell or the range a name then use the above to hide it.
Member: colinardo
colinardo Jul 19, 2016 updated at 09:53:57 (UTC)
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
Member: Tollgemacht
Tollgemacht Jul 19, 2016 at 09:55:53 (UTC)
Goto Top
Danke!
Member: Tollgemacht
Tollgemacht Jul 19, 2016 at 09:56:13 (UTC)
Goto Top
Thank you!
Member: Tollgemacht
Tollgemacht Jul 19, 2016 at 11:26:17 (UTC)
Goto Top
Unfortunately there's another problem i cant solve...
How can i convert the code
ActiveWindow.ScrollRow = 3
to a dynamic one?
Member: colinardo
colinardo Jul 19, 2016 updated at 11:33:28 (UTC)
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
Member: Tollgemacht
Tollgemacht Jul 19, 2016 at 11:50:43 (UTC)
Goto Top
Mein Fehler, habe kaum eine Ahnung, wie du sicher schon festgestellt hast...
Das Merkmal ist eine Zelle mit einem definierten Namen.
Member: colinardo
Solution colinardo Jul 19, 2016 updated at 11:54:25 (UTC)
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