Ocultar o Mostrar filas con condiciones

Supongo que lo que intento hacer debe hacerse con macros y yo solo se grabar xD.
Les cuento, tengo un libro en el cual hay datos en las filas 1 a la 16 y debo ocultar algunas filas dependiendo del valor de otras. Me explico:
* Si la celda A1 esta vacia deben ocultarse las filas 11:16
* Si en la celda A1 dice "HOLA", por ejemplo, y en la A2 "COMO ESTA" entonces las filas 5:10 deben ocultarse y solo verse las filas 11:16
* Si en la celda A1 dice "HOLA" y en la A2 "ADIOS" entonces debe mostrar las filas 5:16
* Si en la celda A1 dice cualquier cosa menos "HOLA", la celda A2 estaría en 0 y deben mostrase solo las filas 5:10
Son solo esas reglas, con otras palabras pero esas son las opciones. La celda A1 puede tomar varios valores pero solo me interesa cuando diga "HOLA" y si es asi, entonces la celda A2 solo puede tomar dos valores "COMO ESTA" y "ADIOS", en cualquier otro caso es cero.
Espero puedan ayudarme, imagino que no es complejo, pero mis conocimientos son casi nulos y por mas que he tratado con el IF no se como escribirlo.

Respuesta
3

Pon la siguiente macro en los evento de tu hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
        Rows("5:16").EntireRow.Hidden = False
        If UCase([A1]) = "" Then
            Rows("11:16").EntireRow.Hidden = True
        ElseIf UCase([A1]) = "HOLA" And UCase([A2]) = "COMO ESTA" Then
            Rows("5:10").EntireRow.Hidden = True
        ElseIf UCase([A1]) = "HOLA" And UCase([A2]) = "ADIOS" Then
            Rows("5:16").EntireRow.Hidden = False
        ElseIf UCase([A1]) <> "HOLA" Then
            Rows("5:10").EntireRow.Hidden = False
            Rows("11:16").EntireRow.Hidden = True
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Prueba y me comentas.

S a l u d o s . D a n t e   A m o r

Si es lo que necesitas.

Hola

Muchas gracias por tu tiempo. Te cuento, puse el código en mi libro lo amolde a mis rangos y condiciones y perfecto, pero hay algo que se me ocurrió después y no consigo hacerlo. Son dos opciones:

1. La primera es agregar una condición más, es decir (siguiendo el ejemplo) si en la celda A1 dice HOLA, en la A2 COMO ESTA y ademas existe una tercera A3 que esta vinculada a una casilla de verificación, por lo tanto puede tomar dos valores: VERDADERO o FALSO, cuando diga VERDADERO, entonces se deben mostrar todas las filas (desde la 5 a la 16) y en el caso de ser FALSO volver a ocultar las filas desde la 5 a la 10.

2. La otra opción es usar la celda A4 (que necesito para unos cálculos) que toma dos valores DETALLE o cero. Cuando el valor es DETALLE significa que A1 = HOLA, A2 = COMO ESTA y A3 = VERDADERO. Como ves son las mismas condiciones de arriba. Entonces, si A4 = DETALLE entonces se muestran todas las filas 5:16 y si A4 = 0, se ocultan las filas 5:10 y se muestran 11:16.

Probé con varias formas para agregar esta nueva condición, pero VBasic no me quiere ToT

Gracias

Con gusto te ayudo con la nueva petición.

Podrías valorar esta respuesta y crear una nueva pregunta con la nueva petición.

En la nueva pregunta, pon como dejaste la macro y me dices si la casilla de verificación es de form o de control ActiveX

ooooo disculpa el no haber contestado antes, pero sucedió algo y tuve que dejar este pequeño proyecto a un lado. 

Te agradezco tu disposición a ayudar y por supuesto tu respuesta también, por ahora lo deje como estaba en un principio pues funciona perfecto y por un tema de tiempos no puedo continuar con lo que estaba haciendo. 

Saludos y muchas gracias nuevamente!

1 respuesta más de otro experto

Respuesta

Deseo que de un grupo de celdas solo se muestren las que corresponden a Refuerzo Académico y las demás celdas se deben ocultar al dar un clic sobre un botón

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas