Discussion:
Ocultar todos los "Checkboxes"
(demasiado antiguo para responder)
JM
2005-08-31 09:50:13 UTC
Permalink
Hola a todos!

Tengo unos 200 CheckBoxes en un excel, es una lista de productos.
El objetivo es conseguir ocultarlos todos simultáneamente.

Puedo ocultar 1 checkbox con el siguiente código...:
'-------------------------------------------------------
With ActiveSheet
.Shapes("Casilla de verificación 5").Visible = False
End With
'-------------------------------------------------------
Pero tendría que repetir esa línea 200 veces cambiando el número...
("Casilla de verificación 6, 7, 8...")
La intención es mediante un código más corto y limpio, ocultarlos todos.
También hay que tener en cuenta que el número de checkboxes o casillas de
verificación puede crecer.
Lo he estado intentando pero no hay manera.
Gracias por vuestro tiempo!!
Saludos JM
the_ma3x
2005-08-31 15:40:27 UTC
Permalink
JM,
Bueno, suponiendo que todos los Checkboxes se llamen igual...

Dim X as Integer

For X = 1 to 200
With ActiveSheet
.Shapes("Casilla de verificación " & X).Visible = False
End With
Next X

Y listo...

Ocultaras los checkboxes.
No se si en Excel, se pueda, pero lo recomendable sería que los
Checkboxes, fueran parte de una Matriz o un arreglo, así su manejo
sería mucho más facil.

Saludos
Héctor Miguel
2005-09-02 04:39:03 UTC
Permalink
hola, JM !
Post by JM
Tengo unos 200 CheckBoxes en un excel, es una lista de productos.
El objetivo es conseguir ocultarlos todos simultaneamente.
With ActiveSheet
.Shapes("Casilla de verificación 5").Visible = False
End With
Pero tendria que repetir esa linea 200 veces cambiando el numero... ("Casilla de verificación 6, 7, 8...")
La intencion es mediante un codigo mas corto y limpio, ocultarlos todos.
Tambien hay que tener en cuenta que el numero de checkboxes o casillas de verificacion puede crecer.
Lo he estado intentando pero no hay manera.
por los nombres... [asumo que] se trata de checkboxes de la barra de herramientas 'formularios' NO 'cuadro de controles' -?-
si lo anterior es correcto... aunque dichos controles -tambien- 'pasan' por la coleccion de objetos 'shapes'...
es mas 'sencillo y rapido' hacer una referencia 'directa' a su tipo de objetos ->CheckBoxes<- del objeto 'Worksheet' ;)

suponiendo que se trata DE TODOS los controles checkbox en la hoja 'activa'... [prueba con una instruccion +/- como la siguiente]:
-> ActiveSheet.CheckBoxes.Visible = False

si requieres de una 'coleccion' personalizada/recortada/especial/... de checkboxes... [tendras que]...
-> hacer un bucle por los objetos checkboxes [mas corto que por los objetos shapes] ;)

saludos,
hector.
JM
2005-09-04 16:35:13 UTC
Permalink
Muchas Gracias a los 2!!

Me lo he estado revisando y funciona con las indicaciones que me habéis dado

Un saludo!
Post by JM
Hola a todos!
Tengo unos 200 CheckBoxes en un excel, es una lista de productos.
El objetivo es conseguir ocultarlos todos simultáneamente.
'-------------------------------------------------------
With ActiveSheet
.Shapes("Casilla de verificación 5").Visible = False
End With
'-------------------------------------------------------
Pero tendría que repetir esa línea 200 veces cambiando el número...
("Casilla de verificación 6, 7, 8...")
La intención es mediante un código más corto y limpio, ocultarlos todos.
También hay que tener en cuenta que el número de checkboxes o casillas de
verificación puede crecer.
Lo he estado intentando pero no hay manera.
Gracias por vuestro tiempo!!
Saludos JM
Loading...