• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Rij verbergen bij 0-waarde (lege cellen)

Status
Niet open voor verdere reacties.

Frenciel

Nieuwe gebruiker
Lid geworden
4 jul 2019
Berichten
2
Hi allemaal,

Ik heb wat hulp nodig! Ik heb een Excel bestand van ongeveer 400 rijen welke gefilterd moeten worden waardoor alleen de nuttige info zichtbaar wordt.
Als ik een filter op kolom C zet en dan alle 0-waarde (lege cellen) eruit filter is het eigenlijk al goed maar aangezien het een bestand is waar meerdere mensen aan werken en zo min mogelijk fouten in mogen komen wil ik graag dat er standaard gefilterd wordt.

Dus eigenlijk, als er in kolom C een 0-waarde (lege cel) voorkomt moet deze gehele rij verborgen worden zodat er alleen een lijstje overblijft met informatie. Dit wil ik graag doen met VBA maar ik heb daar geen amper kaas van gegeten.

In de bijlage heb ik een bestandje geplaatst, het echte document is precies hetzelfde alleen dan met meer rijen en andere teksten en getallen.
 

Bijlagen

In de ThisWorkbook sectie:
Code:
Private Sub Workbook_Open()
    ActiveSheet.Range("C:C").AutoFilter Field:=1, Criteria1:="<>"
End Sub

En je document opslaan als document met macro's (.xlsm).
 
Laatst bewerkt:
Bedankt voor je bericht. Alleen is het ook mogelijk om dit juist niet met een filter te doen? Zodat dit niet zomaar weg geklikt kan worden o.i.d.?
 
Uiteraard is dat mogelijk, maar dan kan je er m.i. beter voor zorgen dat die regels er sowieso niet zijn, als je invloed hebt op de bron er van.

Code:
Private Sub Workbook_Open()
    For Each cl In Range("C9:C19")
        If cl.Value = 0 Then Rows(cl.Row).Hidden = True
    Next cl
End Sub
 
Kan ook.

Code:
Sub hsv()
Dim s0 As String
 s0 = Join(Filter([transpose(if(c9:c19=0,"A"&row(c9:c19),"~"))], "~", 0), ",")
 If Len(s0) > 0 Then Range(s0).EntireRow.Hidden = -1
End Sub
 
Nog twee methodes zonder loop om de nullen en lege cellen te verbergen.
Code:
Sub hsv()
Dim s0 As String
 s0 = Join(Filter([transpose(if((c9:c19=0)+(c9:c19=""),"A"&row(c9:c19),"~"))], "~", 0), ",")
 If Len(s0) > 0 Then Range(s0).EntireRow.Hidden = -1
End Sub

Code:
Sub hsv()
 With Range("c1:c2")
  .Value = Application.Transpose(Array("Project", "?"))
  Range("b6:e19").AdvancedFilter 1, .Cells
  .ClearContents
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan