Pregunta Casilla verificacion

07/04/2009 - 16:38 por Juan Carlos | Informe spam
Hola, me sucede lo siguiente :
Tengo una hoja en la que hay diez casillas de verificacion y estarán ocultas
salvo una cantidad que va a estar en una casilla, por ejemplo, A1.
O sea, tengo checkbox1, checkbox2, etc y si A1 es 4, habra hasta checkbox4.
Lo que quiero hacer es ponerle a esas casillas un texto que tengo idea de
como hacerlo (ActiveSheet.Shapes(Checkbox1).Select: Selection.Characters.Text
= "nombre")
El problema es que me aperece un error 424 y dice "Se requiere un objeto".
Alguien me puede decir que es lo que pasa?

Gracias
JC
 

Leer las respuestas

#1 Héctor Miguel
07/04/2009 - 21:08 | Informe spam
hola, Juan Carlos !

Tengo una hoja en la que hay diez casillas de verificacion y estaran ocultas
salvo una cantidad que va a estar en una casilla, por ejemplo, A1.
O sea, tengo checkbox1, checkbox2, etc y si A1 es 4, habra hasta checkbox4.
Lo que quiero hacer es ponerle a esas casillas un texto que tengo idea de como hacerlo
(ActiveSheet.Shapes(Checkbox1).Select: Selection.Characters.Text = "nombre")
El problema es que me aperece un error 424 y dice "Se requiere un objeto".
Alguien me puede decir que es lo que pasa?



asumiendo que la parte de ocultar/mostrar n_controles segun el numero que pongas en A1 ya lo tienes resuelto (???)

1) si vas a usar la coleccion "Shapes" deberas indicar a cual objeto incrustado te refieres...
o bien, usando el numero de indice del control dentro de la coleccion de objetos: Shapes(2)
o bien, usando el nombre del control delimitado por comillas dobles: Shapes("checkbox1")

2) dependiendo del tipo de control que hayas insertado en la hoja (formularios o barra de controles -ActiveX-)

a) si es de formularios, el control (en si mismo) NO tiene la propiedad "Characters", lo tiene su pariente "TextFrame"
y (generalmente) el nombre lleva espacios en el tipo de control (p.e. "Check Box 1")
para estos la instruccion seria +/- asi: -> ActiveSheet.Shapes("check box 1").TextFrame.Characters.Text = "abc"

b) si es de cuadro de controles, no tiene la propiedad "Characters.Text", sino la propiedad "Caption"
y su referencia es diferente, aqui estas hablando de objetos OLE (Object Linking and Embedding)
para estos casos la instruccion seria +/- asi: -> ActiveSheet.OLEObjects("checkbox1").Object.Caption = "xyz"

saludos,
hector.

Preguntas similares