Diferencia de Controles en Hoja y en un userform

24/01/2007 - 15:04 por J.P. | Informe spam
Buenos días

Haber tengo una macro donde le entrego un control (cuadro combinado)
Por ejemplo:

Sub s(a As Control)
a.AddItem "jose"
End Sub

del mismo modo desde un userformr con un cuadro combinado llamado
cuadrof cuando cargo el formulario llamo el procedimiento s.

Private Sub UserForm_Activate()
s cuadrof
End Sub

Hasta hay muy bien, pero ahora tengo un cuadro combinado (llamado
"cuadro") en la hoja 1 de mi libro y deseo que al activar la hoja me
llame el procedimiento s.

Private Sub Worksheet_Activate()
s cuadro
End Sub

Al activar la hoja me dice que los tipos no coinciden.

Alguien me puede orientar para resolver dicho error?

Gracias
 

Leer las respuestas

#1 Héctor Miguel
25/01/2007 - 07:17 | Informe spam
hola, jose !

1) la coleccion de objetos 'Control/s' solo es aplicable a contenedores del tipo 'UserForm', 'Frame', etc.

2) para el caso de controles 'incrustados' en hojas de calculo, pasan a ser objetos de otro tipo de colecciones
'Shapes', 'OLEObjects', ComboBoxes [del tipo de excel o de la barra de herramientas 'formularios'], etc. ;)

-> prueba a modificar el 'tipo' de objeto que 'recibe/solicita/...' tu procedimiento 's'...
de: -> Sub s(a As Control)
a: -> Sub s(a As Object)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
... tengo una macro donde le entrego un control (cuadro combinado) Por ejemplo:
Sub s(a As Control)
a.AddItem "jose"
End Sub
... desde un userformr con un cuadro combinado llamado cuadrof cuando cargo el formulario llamo el procedimiento s.
Private Sub UserForm_Activate()
s cuadrof
End Sub
... ahora tengo un cuadro combinado (llamado "cuadro") en la hoja 1 de mi libro y deseo que al activar la hoja me llame el procedimiento s.
Private Sub Worksheet_Activate()
s cuadro
End Sub
Al activar la hoja me dice que los tipos no coinciden.
Alguien me puede orientar para resolver dicho error?

Preguntas similares