Referenciar un control desde una variable
Publicado por Ricardo (2 intervenciones) el 16/01/2008 17:18:14
Hola, buenas tardes;
Tengo un problema con el Excel que me está trayendo de cabeza, a ver si alguien me sabe echar una mano...
Estoy creando una encuesta en una hoja Excel, cada pregunta tiene 3 posibles respuestas que se marcan chequeando o deschequeando su correspondiente checkbox. Después estoy intentando crear una macro que recopile los resultados en el formato que yo quiero en una pestaña oculta dentro de la misma hoja.
Los nombres de los checkbox siguen un patrón:
chkPregunta01_01
chkPregunta01_02
chkPregunta01_03
chkPregunta02_01
chkPregunta02_02
chkPregunta02_03
...
Intentaba que la macro sea reutilizable, no me gustaría tener que acabar haciendo una lista de ifs que evalúen los checks uno por uno, ya que en el futuro necesitaré hacer más encuestas y todo lo que sea reutilizable mejor...
Mi intención es construir el nombre dinámicamente, concatenando constantes y variables para luego preguntar en un If si su valor es verdadero o no, y de esta manera automatizar bastante el proceso.
Intento algo tal que así:
'Construyo el nombre y lo almaceno en la variable
strNombreCheck = "chkPregunta" & intNumPregunta & "_" & intNumRespuesta
'Y, después, intento evaluar la propiedad su Value
If strNombreCheck.Value = "Verdadero" Then
El problema que tengo es que claro, strNombreCheck es una variable de tipo cadena y me la reconoce como tal... e intentado desde poner paréntesis (strNombreCheck).Value, a que esa variable sea de tipo Object; incluso de tipo Checkbox, pero no hay manera.
También e intentado usar un bucle For Each, pero e seguido sin conseguir nada:
For Each objNombreCheck In Worksheets("Hoja4")
Este caso lo he probado declarando objNombreCheck como Object, como Control e incluso como Checkbox, pero nada...
Y, el caso es que yo creo que esto en Visual Basic puro y duro sí que se puede hacer, no??
Agradecería cualquier ayuda, que me estoy volviendo loco con esto ya...
Gracias por anticipado y un saludo, Ricardo
Tengo un problema con el Excel que me está trayendo de cabeza, a ver si alguien me sabe echar una mano...
Estoy creando una encuesta en una hoja Excel, cada pregunta tiene 3 posibles respuestas que se marcan chequeando o deschequeando su correspondiente checkbox. Después estoy intentando crear una macro que recopile los resultados en el formato que yo quiero en una pestaña oculta dentro de la misma hoja.
Los nombres de los checkbox siguen un patrón:
chkPregunta01_01
chkPregunta01_02
chkPregunta01_03
chkPregunta02_01
chkPregunta02_02
chkPregunta02_03
...
Intentaba que la macro sea reutilizable, no me gustaría tener que acabar haciendo una lista de ifs que evalúen los checks uno por uno, ya que en el futuro necesitaré hacer más encuestas y todo lo que sea reutilizable mejor...
Mi intención es construir el nombre dinámicamente, concatenando constantes y variables para luego preguntar en un If si su valor es verdadero o no, y de esta manera automatizar bastante el proceso.
Intento algo tal que así:
'Construyo el nombre y lo almaceno en la variable
strNombreCheck = "chkPregunta" & intNumPregunta & "_" & intNumRespuesta
'Y, después, intento evaluar la propiedad su Value
If strNombreCheck.Value = "Verdadero" Then
El problema que tengo es que claro, strNombreCheck es una variable de tipo cadena y me la reconoce como tal... e intentado desde poner paréntesis (strNombreCheck).Value, a que esa variable sea de tipo Object; incluso de tipo Checkbox, pero no hay manera.
También e intentado usar un bucle For Each, pero e seguido sin conseguir nada:
For Each objNombreCheck In Worksheets("Hoja4")
Este caso lo he probado declarando objNombreCheck como Object, como Control e incluso como Checkbox, pero nada...
Y, el caso es que yo creo que esto en Visual Basic puro y duro sí que se puede hacer, no??
Agradecería cualquier ayuda, que me estoy volviendo loco con esto ya...
Gracias por anticipado y un saludo, Ricardo
Valora esta pregunta


0