Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Macro voor verbergen nul-rijen

None
4 antwoorden
  • Ik ben dus op zoek naar een macro om alle rijen met een waarde nul te verbergen.

    Een zoektocht op het net bracht mij tot het volgende:

    Sub hide_rows()
    Dim endRow As LongDim ColA As RangeDim Cell As Range
    Sheets("Report").SelectendRow = Cells(Rows.Count, 1).End(xlUp).RowSet ColA = Range(Cells(2, 1), Cells(endRow, 1))For Each Cell In ColAIf Cell.Value = 0 ThenCell.EntireRow.Hidden = TrueEnd IfNext Cell
    End Sub

    waarbij ik ColA vervangen heb door X, zijnde de kolom waarvoor ik mij op baseer om nul-rijen te verbergen.

    Het werkt wel, alleen verbergt hij zowat alle lijnen ipv enkel nul waardes.

    Bestaat er ook een macro om alle lijnen terug open te zetten.

    Deze zou dan ook aan een knop gekoppeld worden.
  • Waarom zet je daar niet ff enters in? LongDim is bij mij geen geldig datatype en SelectendRow geen geldige eigenschap ;-) De macro gaat een voor een alle cellen in kolom 1 af en verbergt de rij indien de waarde van de cel leeg is [b:c30c7915fb]of 0[/b:c30c7915fb]. Voor alleen de lege cellen moet je matchen met "":
    [code:1:c30c7915fb]
    Sub hide_rows()
    Dim endRow As Long
    Dim ColA As Range
    Dim Cell As Range
    Sheets("Report").Select
    endRow = Cells(Rows.Count, 1).End(xlUp).Row
    Set ColA = Range(Cells(2, 1), Cells(endRow, 1))
    For Each Cell In ColA
    If Cell.Value = "" Then
    Cell.EntireRow.Hidden = True
    End If
    Next Cell
    End Sub
    ————–
    Sub unhide_rows()
    '
    ' Macro1 Macro
    ' Macro recorded 13-12-2005 by Paulus
    '

    '
    Cells.Select
    Selection.EntireRow.Hidden = False
    Range("A1").Select
    End Sub
    [/code:1:c30c7915fb]
    En voor alleen de cellen waar een 0 in staat moet je bijv. checken op:
    If CStr(Cell.Value) = "0" Then

    End If
  • het lukt me niet om de macro te doen werken

    Ik heb het volgende als code

    Sub hide_rows()

    Dim endRow As Long
    Dim ColBZ As Range
    Dim Cell As Range
    Sheets("JRBDG & KWRTLB ORTHOPEDIE").Select
    endRow = Cells(Rows.Count, 1).End(xlUp).Row
    Set ColBZ = Range(Cells(2, 1), Cells(endRow, 1))
    For Each Cell In ColBZ
    If Cell.Value = 0 Then
    Cell.EntireRow.Hidden = True
    End If
    Next Cell
    End Sub

    kolom BZ is de kolom die beoordeeld wordt op nul-lijnen.
    Als ik de macro uitvoer, worden er wel lijnen verborgen gemaakt maar niet enkel nul-lijnen.
  • Zie je wel de logica achter de verschillen tussen deze drie?

    If Cell.Value = 0 Then -> waarde 0 of lege cel
    If Cell.Value = "" Then -> alleen lege cel
    If CStr(Cell.Value) = "0" Then -> alleen waarde 0

    Oh, ik zie denk ik al waar je de fout in gaat. Met Set ColBZ pak je niet automatisch de kolom BZ. De twee 1'en in die instructie zeggen welke kolom moet worden gepakt en BZ heeft columnindex 78, dus je moet er dit van maken:

    Set ColBZ = Range(Cells(2, 78), Cells(endRow, 78))

    En hij pakt dus rij 2 t/m de laatste rij.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.