Ocultar y mostrar filas en Excel por medio de una

Ocultar y mostrar filas en Excel por medio de una macro
Cordial saludo. Solicito por favor una ayuda.
Quiero que por medio de una macro, al seleccionar una "casilla de verificación (control de formulario)", es decir, "VERDADERO/FALSO" cuya celda vinculada es la "A3" se oculten o muestren las filas que cumplen un criterio. Por ejemplo: en la columna C8:C51 aparecen unos (1) y ceros (0), el uno (1) significa que hay datos, el cero (0) que no los hay (por medio de una fórmula). Necesito que cuando active la casilla de verificación, siendo A3="VERDADERO", entonces me oculte las filas de C8:C51 que tiene valor cero (0), y que cuando desactive la casilla de verificación, siendo A3="FALSO" me muestre las celdas ocultas o que tienen valor cero (0). Mil gracias.
Encontré este código en internet pero sólo me oculta las filas.
Range("AQ8"). Activate
While ActiveCell.Row <> 51
If ActiveCell.Value = 0 Then
ActiveCell.EntireRow.Hidden = True
End If
ActiveCell.Offset(1, 0). Activate
Wend
ActiveWorkbook. Sabe
End Sub

1 respuesta

Respuesta
1
El código para lo que pides quedaría así:
Private Sub CheckBox1_Click()
Dim celda As Range
If CheckBox1 = True Then
Range("a3") = "VERDADERO"
Else
Range("a3") = "FALSO"
End If
For Each celda In Range("c8:c51")
If Range("a3") = "VERDADERO" And celda = 0 Then
celda.EntireRow.Hidden = True
Else
celda.EntireRow.Hidden = False
End If
Next
End Sub
Unicamente tendrías que insertar la casilla de verificación en la hoja donde quieres hacer todo esto (yo la puse por ejemplo con el control activex).
Solo que podrías quitar lo de la celda A3 verdadero y falso, y condicionar lo de ocultar las celdas solo con la casilla de verificación... pero de todas maneras la forma en la que lo quieres funciona y perfectamente
cualquier duda que tengas me dices, ¿simón?...
Saludos! Cuidate!
Estimado experto Simón, mil gracias por su respuesta, por su colaboración.
Usted tiene razón con lo de quitar la celda A3. Yo utilizo los controles de formulario y no los controles ActiveX. Me dí cuenta que los controles ActiveX no tienen lo de la casilla de verificación. Por eso se me presentaban algunos errores de compilación, y luego de releer su mensaje me dí cuenta que era casilla de verificación ActiveX. El código me funcionó con sólo hacer clic. No sé si es mucha molestia saber como quedaría el código sin la celda A3, pues me interesa aprender, y además cómo hago para volver al código si necesito cambiar las celdas donde aparecen los ceros y unos, para ocultar o mostrar las celdas. (Tengo office 2010)
Quiero por favor, que me oriente acerca de la diferencia entre los controles de formulario y los Activex, pues este es el procedimiento que sigo cuando creo una macro para los controles de formulario: primero grabo una macro, segundo ingreso a la macro paso a paso y cambio el código, por ejemplo copio el código que usted me envió, luego se presentan errores de compilación.
De nuevo mil gracias, Harvi. A propósito ¿Usted sabe de Access?
Bueno primero que nada no me llamo Simon, mi nombre es Víctor. Lo que pasa es que donde vivo Simon es una expresión para decir si (así nos las gastamos jaja).
¿Oye querrás decir que tienes office 2007?... bueno de cualquier forma es igual para 2003 que para 2007.
Para quitar lo de la celda A3, te paso el código, entonces si la casilla de verificación esta con la palomita se ocultaran, si la desactivas se mostrara lo ocultado:
Private Sub CheckBox1_Click()
CheckBox1.Caption = "Ocultar"
Dim celda As Range
For Each celda In Range("c8:c51")
If CheckBox1 = True And celda = 0 Then
celda.EntireRow.Hidden = True
Else
celda.EntireRow.Hidden = False
End If
Next
End Sub
Te puse también que la casilla se llame Ocultar pero lo puedes cambiar si quieres.
Mira la diferencia en los controles de formulario y los activex radican en que los de formulario deben estar asociados a una macro (modulo) (debes dar click derecho y asignar macro, eliges el nombre de la macro) y los controles activex se pueden programar sin necesidad de que se asigne a una macro. Para ver el código del control activex (en modo diseño) le das doble click y te aparecerá la ventana del código o bien con click derecho, ver código; y es ahí donde debes insertar el código que te mando.
Espero te haya servido mi explicación. Un saludo!... cuidate!
Perdón se me olvido contestar tu ultima pregunta...
La verdad nunca he utilizado Access... yo siempre he preferido y por mucho Excel
Bye!...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas