Range Hiden als cel leeg is (niet alle rijen worden gehided als cel leeg is)

Status
Niet open voor verdere reacties.

jelleoomsajaxfan1

Nieuwe gebruiker
Lid geworden
11 nov 2015
Berichten
3
Code:
Sub Test()

Application.ScreenUpdating = False


Dim cel As Range
Dim rng As Range


Set rng = Worksheets("2016!").Range("C316", Range("C365").End(xlUp))
    
For Each cel In rng
         
    If cel.Value = "" Then
             
        cel.EntireRow.Hidden = True
    Else
        cel.EntireRow.Hidden = False
    End If
         
    Next cel
    
Application.ScreenUpdating = True

End Sub

Voor de duidelijkheid: Boven en tussen de twee waardes die je hier ziet in Kolom C zitten meerder lege cellen waarvan dus WEL de rijen zijn gehided met deze code.
v1.png

Hoe kan ik de lege rijen ook hiden? Terwijl dat met deze code toch zou moeten lukken?
Het idee is dat als er een waarde is ingevuld, de rij zichtbaar moet zijn. Weet iemand of ik dit ook met meerdere rijen kan doen? Dus rij 8 wordt getoond als OF kolom C, OF kolom D, OF kolom E, OF kolom F een waarde heeft (niet leeg is).

Ik ben geen wonderkind met vba en zou het bijzonder waarderen als iemand mij kan helpen.

m.v.g.
Jelle
 
Laatst bewerkt:
Code:
Sub Test()

    Dim cel As Range, rng As Range

    Application.ScreenUpdating = False

    Set rng = Worksheets("2016!").Range("C316:C365")
    
    For Each cel In rng
         cel.EntireRow.Hidden = IIf(WorksheetFunction.CountA(cel.Resize(, 4)) >= 1, False, True)
    Next cel
    
    Application.ScreenUpdating = True

End Sub
 
Code:
Sub Test()

    Dim cel As Range, rng As Range

    Application.ScreenUpdating = False

    Set rng = Worksheets("2016!").Range("C316:C365")
    
    For Each cel In rng
         cel.EntireRow.Hidden = IIf(WorksheetFunction.CountA(cel.Resize(, 4)) >= 1, False, True)
    Next cel
    
    Application.ScreenUpdating = True

End Sub

Hoi Rudi,

Ik begrijp de code, maar hij werkt niet.
Na zelf nog wat te hebben geprutst ben ik tot iets gekomen wat wel werkt.
Dankje voor je hulp, want je hebt me de goede richting op geholpen.

Ik vraag mij af waarom jouw code niet werkt, maar wel mijn aanpassing erop. Ik heb een andere macro die ik ook met een button bedien die alle rijen hide. Misschien dat dat iets ermee te maken heeft?
Code:
Sub Test()

    Dim cel As Range, rng As Range

    Application.ScreenUpdating = False

    Set rng = Worksheets("2016!").Range("C316:C365")
    
    For Each cel In rng
        cel.EntireRow.Hidden = IIf(cel = Empty, True, False)
    Next cel
    
    Application.ScreenUpdating = True

End Sub
 
rij 8 wordt getoond als OF kolom C, OF kolom D, OF kolom E, OF kolom F een waarde heeft (niet leeg is).
Dan is er ofwel iets mis met je vraagstelling of met je gegevens want de code werkt zoals jij het gevraagd hebt.
Als je de code begrijpt zal je ook weten wat de voorwaarde WorksheetFunction.CountA(cel.Resize(, 4)) >= 1 doet.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan