Para ocultar todas las filas cuando el valor es 0 en la columna I según una lista desplegable en la celda D3

Para ocultar todas las filas cuando el valor es 0 en la columna I según una lista desplegable en la celda D3

Tengo una lista desplegable en la celda D3. Una vez que cambia D3, los valores de las filas cambian, algunos con números por encima o por debajo de 0 y otros permanecen en un 0 agudo en la columna I. Necesito una macro que se repetirá y el resultado debería ser que cuando cambie D3, toda la información con el valor exacto de 0 en La columna I estará oculta, PERO cuando cambie D3 nuevamente, se restablecerá y nuevamente ocultará todas las filas que incluyen un 0 en la columna I.

Respuesta1

Para activar una macro con cambios en una hoja, puede colocar un suben la hoja de trabajo usando el
evento Worskheet.Change:Private Sub Worksheet_Change(ByVal Target As Range)

Para realizar un bucle en la columna "I", hay algunas formas de hacerlo. Podemos definir el rango y hacer un For eachbucle, o podemos usar un iterable.

Para evitar bucles en toda la columna, podemos encontrar la última fila de uso de la columna de varias maneras diferentes, Cells(Rows.Count, 9).End(xlUp).Rowesta es una de ellas.

Verificar el valor de la celda en el bucle es bastante sencillo y para ocultar la fila, podemos usarRange.EntireRow.Hidden = True

Todo podría verse así:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim hide As Boolean, i As Long
'Intersect validates that the change is only happening in "D3" to be valid
If Not Intersect(Target, Range("D3")) Is Nothing And Target.Count = 1 Then
' i = starting range - to - last row    
    For i = 4 To Cells(Rows.Count, 9).End(xlUp).Row
        hide = False
        If Cells(i, 9).Value = "0" Then hide = True
        Cells(i, 9).EntireRow.Hidden = hide
    Next i
End If
End Sub

información relacionada