Creación de array de checkboxes

Necesito crear en una hoja de excel un conjunto de Checkboxes, para poder asignar a cada uno de ellos unas propiedades determinadas (nombre, tamaño, posición...) de forma automática. Tengo en otra hoja una serie de campos que pueden variar y lo que quería era ir asignándole al texto de cada checkbox el nombre cada campo, es decir, que por ejemplo, al pulsar un botón se crease para cada campo un checkbox distinto con el nombre del campo que tengo en la otra hoja .Esto quería hacerlo creando un array de checkboxes. He probado de varias formas pero no lo he conseguido hacer ... Ni tan siquiera puedo crear un simple checkbox.He probado primero a inicializar una variable (por ejemplo chk) de la siguiente forma :
Dim chk as checkbox
El Visual Basic de excel me reconoce el objeto checkbox ya que esta dentro de su librería de objetos, pero al intentar crear una instancia de él :
Set chk = New Checkbox
Me da un error de compilación (Uso de la palabra clave New no válido).
¿Sabéis por qué? ¿Se puede crear un array de checkboxes? ¿Se puede hacer lo mismo con un Label,
o un comboBox? . Saludos

1 respuesta

Respuesta
1
En principio te puedo asegurar que VBA NO permite la creación de Arrays (a diferencia del Visual); respecto al error que te da creo que es porque no es la forma de asignar dentro de VBA (no hace falta que crees la instancia previamente)
¿No se si con esto en mente querés encararlo por otro lado?
Bueno decirte que VBA si permite la creación de arrays, al menos permite crear arrays de strings, enteros ..., lo que no estoy tan seguro es si permite crear arrays de controles (checkboxes, comboBoxes, labels...), y si no lo crees puedes probarlo tú mismo ... Bueno si se te ocurre alguna forma de resolver mi problema, aunque no sea con programación en VBA, o tienes alguna idea o sugerencia no dudes en comentármela... Saludos.
En verdad tienes razón en lo que decís; cuando te decía la creación de arrays, me refería a la forma que lo maneja Visual de tener por ejemplo los check y luego puedes crear eventos que te sirven para todos los check pues uno de los parámetros es el Index
Fíjate usando la grabadora de macros; yo pude hacer esto aunque no estoy muy seguro que te pueda servir
Sub Macro2()
ActiveSheet.Shapes("Option Button 4").Select
Selection.ShapeRange.AlternativeText = "xxyy" & Chr(10) & ""
ActiveSheet.Shapes("Option Button 4").Select
Selection.Characters.Text = "xx yy"
ActiveSheet.Shapes("Option Button 3").Select
Selection.Characters.Text = "zz aa"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas