Hiden/Unhiden van rijen binnen tabellen zonder filter op de headers (VBA)

Status
Niet open voor verdere reacties.

Djani

Gebruiker
Lid geworden
16 mrt 2016
Berichten
67
Hoi allemaal,

Ik heb een x aantal tabellen in een worksheet die dezelfde structuur/format hebben. Hierbij vergelijk ik data van de huidige maand met de vorige maand. Hierdoor is het mogelijk dat de data - zoals weergeven in de tabel - veranderd. Iedere maand kan de positie van de modellen BINNEN de tabel veranderen, dus als bijv. rij 20 deze maand wordt gehided, dan hoeft dat niet zo te zijn in de volgende vergelijking.

Ik ga deze tabellen in PowerPoint plaatsen via "Paste Link" zodat de tabellen daarin automatisch geupdatet worden. Hierdoor is het plaatsen van een filter geen optie. Is het mogelijk om m.b.v. een VBA script de rijen te hiden/unhiden in de tabellen (niet de hele sheet)? Ik zat te denken aan 1 "CommandButton" met als tekst "Hide Rows" en "Unhide Rows".

Code:
Private Sub CommandButton4_Click()
If CommandButton4.Caption = "Hide Rows" Then

       CommandButton4.Caption = "Show Rows"

Else
  
  CommandButton4.Caption = "Hide Rows"
End If

End Sub

Ik ben geen expert in VBA, dus ik heb alleen echt de basis erin zitten. In de bijlage vindt je twee tabellen: een van zoals die nu is, en een zoals ik het graag zou willen hebben!

fu8f4h.png


Mocht je meer informatie/voorbeelden nodig hebben, dan hoor ik het uiteraard!

Mvg,

Djani
 
Dit is inderdaad dicht in de buurt van hoe ik het wil hebben. .

az8e39.png


In bovenstaande afbeelding kun je zien dat er meerdere tabellen onder elkaar zitten die zijn afgewisseld met twee 'rijen'. Het format en structuur zal te allen tijde hetzelfde blijven.
De button - zoals die door jouw gemaakt is - hide nu alle rijen, dus de tabellen komen als het ware nu onder elkaar te staan. Indien mogelijk, dan zou ik willen werken met de volgende logica: de cellen in de "range" (F7:F16), (F21:F30) etc. die niet voorzien zijn van een waarde, die rijen moeten gehided worden!

De unhide button moet gewoon alle rijen unhiden zoals normaal.

Hopelijk is dit iets duidelijker omschreven.

In ieder geval bedankt voor je hulp.

Mvg,

Djani
 
Laatst bewerkt:
Plaats een voorbeeldbestand ipv plaatjes.

Om te verbergen
Code:
Range("F7:F16,F21:F30").SpecialCells(4).EntireRow.Hidden = True

Om zichtbaar te maken
Code:
Cells.EntireRow.Hidden = False
 
Voorbeeldbestand

Nu komen we ergens. Thanks voor de hulp.

Zie bijgevoegd het voorbeeldbestand!

Bekijk bijlage Book1.xlsx

Ik heb hierbij duidelijk gekenmerkt welke rijen niet verwijderd moeten worden. Hopelijk is alles nu duidelijker.
 
Zoiets?

Code:
Sub VenA()
Application.ScreenUpdating = False
For Each cl In Range("F7:F129")
    If cl = "" And (cl.Row - 4) Mod 14 > 1 Then cl.EntireRow.Hidden = True
Next cl
End Sub
 

Bijlagen

Laatst bewerkt:
VenA, dit werkt perfect. Echter, dat stukje code m.b.t. het unhiden van rijen werkt helaas niet.
 
Ik zie er niets verkeerds aan.

Iets anders geschreven.
Code:
Sub VenA()
Application.ScreenUpdating = False
For Each cl In Range("F7:F129")
    cl.EntireRow.Hidden = cl = "" And (cl.Row - 4) Mod 14 > 1
Next cl
End Sub


Sub VenA1()
Rows.Hidden = False
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan