Modificar macro para ocultar y mostrar filas

Solicito el apoyo de ustedes para modificar la siguiente macro, la cual me permite ocultar y mostrar filas con valores mayores a cero, pero únicamente con dos columnas y a hora deseo que sea para cuatro columnas y más que todo es en esta parte de la macro que no se como colocar para las cuatro columnas: If Cells(i, col1) > 0 Or Cells(i, col2) > 0 Then

Sub mostrar_ocultar()
    fila_ini = 8
    col1 = "C"
    col2 = "D"

    col3 = "E"
    col4 = "F"   

'
    For i = fila_ini To Range("C" & Rows.Count).End(xlUp).Row
        If Cells(i, col1) > 0 Or Cells(i, col2) > 0 Then
            Cells(i, col1).EntireRow.Hidden = False
        Else
            Cells(i, col1).EntireRow.Hidden = True
        End If
    Next i
End Sub

Sub mostrar_FILAS()
    fila_ini = 1
    col1 = "C"
    col2 = "D"
    '
    For i = fila_ini To 200
            Cells(i, col1).EntireRow.Hidden = False

    Next i
End Sub

2 Respuestas

Respuesta
1

Yo no probé la macro pero si te funciona bien así como está armada sólo cambia esto

If Cells(i, col1) > 0 Or Cells(i, col2) > 0 Then

Por esto

If Cells(i, col1) > 0 Or Cells(i, col2) > 0 Or Cells(i, col3) > 0 Or Cells(i, col4) > 0 Then

Respuesta
1

Prueba esta macro, usa la función contar si en cada fila si esta es igual a 4 quiere decir que en las columnas de la C a la F hay puros ceros con lo cual se cumple con la condición if y oculta la celda, en caso contrario no hará nada, luego en la macro mostrar te puse una opción más sencilla de 1 sola línea para hacer visibles las filas ocultas.

Sub ocultar()
Set datos = Range("c1").CurrentRegion
With datos
    f = .Rows.Count
    For i = 8 To f
        cuenta = WorksheetFunction.CountIf(.Rows(i), 0)
        If cuenta = 4 Then .Rows(i).Hidden = True
    Next i
End With
Set datos = Nothing
End Sub
'
'
Sub mostrar()
Range("c1").CurrentRegion.EntireRow.Hidden = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas