Vraag & Antwoord

Programmeren

Macro voor verbergen nul-rijen

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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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