Ocultar filas de Excel según valor de lista

Estoy trabajando sobre un excel, que según los valores que se declaran en unas listas, muestra u oculta determinadas filas.

Este es un ejemplo de uno de los IF que tengo declarados:

If Target.Address = "$N$1" Then 'Celda donde esta la lista de Tecnología 3G/4G
     valor = Target.Value
     Select Case valor
      Case "3G" 'Para el Caso de 3G
       Rows("4:237").EntireRow.Hidden = True
       Rows("2:3").EntireRow.Hidden = False
      Case "4G" 'Para el caso de 4G
       Rows("3:7").EntireRow.Hidden = True
       Rows("8").EntireRow.Hidden = False
     End Select
End If

Ahora, el problema lo tengo cuando dependo de dos variables en la listas.
Es decir, cuando en la lista de la celda R3 tenga un valor "x" y en la lista de la celda Z5 tengo unn valor "y", ocultar o mostrar tales filas...

Cuando en R3 tenga "xx" y en Z5 tenga "yy", ocultar o motrar estas otras filas.

Realmente no se como escribir esa segunda condicional dentro del IF.

1 Respuesta

Respuesta
1

H o l a: Según tu ejemplo tienes 3 condiciones para ocultar o mostrar filas, las condiciones son de las celdas N1, R3 y Z5

Si cambias cualquiera de esas 3 celdas, supongo entonces, que se van a ocultar y mostrar ciertas filas.

Te anexo unos ejemplos de como debes armar las combinaciones. Deberás poner un ElseIf por cada combinación que necesites para ocultar y mostrar filas.

Private Sub Worksheet_Change(ByVal Target As Range)
'Act.Por.Dante Amor
    If Not Intersect(Target, Range("N1, R3, Z5")) Is Nothing Then  'Celdas modificadas
        v1 = Range("N1")
        v2 = Range("R3")
        v3 = Range("Z5")
        If v1 = "3G" And v2 = "x" And v3 = "y" Then
            Rows("4:237").EntireRow.Hidden = True
            Rows("2:3").EntireRow.Hidden = False
        ElseIf v1 = "3G" And v2 = "y" And v3 = "x" Then
            'filas a ocultar
            'filas a mostrar
        ElseIf v1 = "4G" And v2 = "x" And v3 = "y" Then
            Rows("3:7").EntireRow.Hidden = True
            Rows("8").EntireRow.Hidden = False
        ElseIf v1 = "4G" And v2 = "y" And v3 = "x" Then
            'filas a ocultar
            'filas a mostrar
        End If
    End If
End Sub

Prueba y me comentas.

'S aludos. Dante Amor. Si es lo que necesitas 
Recuerda valorar la respuesta. G racias

Mil gracias por tomarte el tiempo en ayudarme.

Ayer lo había resuelto de un método "menos prolijo", así que ahora lo cambiare según me explicas, para dejarlo más comprensible.

Muchas gracias!

Abrazos!

PD: Ejemplo menos prollijo.

------------------------------------------------------------------------------------------------------------------------------------------------------

If Target.Address = "$D$55" Then 'Celda donde esta la lista de "TX Final 3G"
     valor = Target.Value
     Select Case valor
      Case "MPLS Directo"
       Rows("56:59").EntireRow.Hidden = False
      If Range("$R$3").Value = "U" Then
            Rows("68:69").EntireRow.Hidden = True
      End If
      If Range("$R$3").Value = "D" Then
            Rows("68:69").EntireRow.Hidden = True
      End If
      If Range("$R$3").Value = "U+D" Then
            Rows("68:69").EntireRow.Hidden = False
      End If

End Select

End if

------------------------------------------------------------------------------------------------------------------------------------------------------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas