Mostrar y ocultar filas usando casillas de verificación y Visual Basic

Me gustaría mostrar y ocultar las filas C1:C5 seleccionando y desmarcando respectivamente la casilla de verificación 1. También mostrar y ocultar las filas C6:C9 seleccionando y desmarcando respectivamente la casilla de verificación 2. Después mostrar y ocultar las filas C10:C13 seleccionando y desmarcando respectivamente la casilla de verificación 3. Finalmente una opción para mostrar y ocultar las filas C1:C13 seleccionando y desmarcando, respectivamente la casilla de verificación 4, esta última muestra y oculta todas filas descritas.
Aclarando:
Marcando/seleccionando las CheckBox1, CheckBox2 y CheckBox3. Deberá aparecer el rango de texto C1:C5, C6:C9 y C10:C13 respectivamente. La Checkbox4 siendo marcada/seleccionada deberá mostrar el rango C1:C13. Cuando la Checkbox4 se desmarca/deselecciona deberá ocultar el rango C1:C13.
Atento a tu ayuda.

Respuesta
1

Te anexo otro código, este hace que se vea mejor la pantalla

Private Sub CheckBox1_Click()
 cambiar
End Sub
Private Sub CheckBox2_Click()
 cambiar
End Sub
Private Sub CheckBox3_Click()
 cambiar
End Sub
Private Sub CheckBox4_Click()
 Rows("1:13").EntireRow.Hidden = CheckBox4.Value
End Sub
Sub cambiar()
 Application.ScreenUpdating = False
 Rows("1:13").EntireRow.Hidden = True
 Rows("1:5").EntireRow.Hidden = CheckBox1.Value
 Rows("6:9").EntireRow.Hidden = CheckBox2.Value
 Rows("10:13").EntireRow.Hidden = CheckBox3.Value
 ActiveWindow.ScrollRow = 1
 Application.ScreenUpdating = True
End Sub

Ahora lo que no entiendo son las posibilidades.

Si marco el 1 y luego marco el 2. El 2 oculta un rango, ¿pero el 1 también está ocultando un rango a cuál le hago caso? ¿O le hago caso a los 2? O solamente le hago caso al último seleccionado. Las posibilidades aumentan cuando marcas el 4, ya que si marcas el 4 y están marcados el 1 ó el 2 ó el 3, qué debe hacer la macro.

Si está marcado el 4 y desmarco el 1, ¿el 2 o el 3? Qué pasa entonces.

Lo mismo para este caso, ¿si desmarco el 4 y hay alguno otro marcado qué hacer?

Creo que el código que te estoy enviando abarca todas las posibilidades. Ya que revisa cada check y la macro se comporta de acuerdo a lo que tienes marcado.

Hola gracias por tu gentil respuesta!
Lo primero a saber es que si marco cualquier opción, las celdas deben aparecer no ocultarse (Se da por hecho que todas las celdas estan ocultas. Cuando desmarco cada opción las celdas deben ocultarse. La idea es que si marco cada opción de la 1 a la 3, se debe mostrar las celdas asociadas a cada una de estas opciones. Lo que hace la opción cuatro es mostrar a todas las celdas cuando se marca y oculta a todas las celdas cuando se desmarca.
Eres muy amable y debo pedir disculpas ya que a lo mejor no me exprese bien desde el principio, igual cualquier inquietud, pregunta o sugerencia soy todo oídos.
Estoy atento a tu respuesta, saludes!

Prueba con este

Private Sub CheckBox1_Click()
    cambiar
End Sub
Private Sub CheckBox2_Click()
    cambiar
End Sub
Private Sub CheckBox3_Click()
    cambiar
End Sub
Private Sub CheckBox4_Click()
    If CheckBox4 Then
        Rows("1:13").EntireRow.Hidden = False
    Else
        Rows("1:13").EntireRow.Hidden = True
    End If
End Sub
Sub cambiar()
    Application.ScreenUpdating = False
    Rows("1:13").EntireRow.Hidden = True
    If CheckBox1 Then
        Rows("1:5").EntireRow.Hidden = False
    Else
        Rows("1:5").EntireRow.Hidden = True
    End If
    If CheckBox2 Then
        Rows("6:9").EntireRow.Hidden = False
    Else
        Rows("6:9").EntireRow.Hidden = True
    End If
    If CheckBox3 Then
        Rows("10:13").EntireRow.Hidden = False
    Else
        Rows("10:13").EntireRow.Hidden = True
    End If
    ActiveWindow.ScrollRow = 1
    Application.ScreenUpdating = True
End Sub

¡Excelente!

Muchísimas gracias, di a entender mejor lo que quería y tu me ayudaste justo en ello. No pude tener mejor asistencia. Muy agradecido!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas