Activación automática diferentes objetos OLE
Tengo dos marcos de objeto independientes (OLEind1 y OLEind2) en un formulario con las siguientes mismas propiedades para los dos:
- Tipo OLE: Incrustado
- Tipo OLE permitido: Ambos
- Clase OLE: Microsoft Excel Macro-Enabled 12
- Clase: SheetMacroEnabled. 12
- Opciones de actualización: Automática
- Tipo de presentación: Contenido
- Habilitado: Sí
- Bloqueado: No
- ...
- Activación automática: RecibirEnfoque
El OLEind1 es una tabla dinámica y el OLEind2 es un gráfico dinámico. Cuando hago doble clic en cualquiera de los dos OLE (activación en contexto), se actualizan los valores. Para pasar de un OLE a otro
La idea es que cuando se cargue el formulario, se actualicen automáticamente los valores de los dos objetos OLE.
Con este propósito, he escrito los siguientes códigos VBA pero sin éxito:
- PRUEBA 1
Private Sub Form_Load()
...
OLEind1. SetFocus ‘pongo el enfoque en el objeto OLEind1
OLEind2. SetFocus ‘pongo el enfoque en el objeto OLEind2
...
End Sub
- Resultado PRUEBA 1
El OLEind2 se muestra en activación en contexto con los datos actualizados, pero el OLEind1 no se ha actualizado.
- PRUEBA 2
Private Sub Form_Load()
...
OLEind1.Action = acOLEActivate
OLEind1.Verb = acOLEVerbOpen
OLEind1.Action = acOLEUpdate
OLEind1.Action = acOLEClose
OLEind1.Requery
OLEind2.Action = acOLEActivate
OLEind2.Verb = acOLEVerbOpen
OLEind2.Action = acOLEUpdate
OLEind2.Action = acOLEClose
OLEind2.Requery
...
End Sub
- Resultado PRUEBA 2
Se cuelga MS-Excel. El problema es que, según la ayuda de msdn.microsoft.com, la propiedad “ObjectFrame. Action (acceso)” tiene los valores de propiedad de “acción” restringidos al valor de la propiedad Enabled y Locked.
- PRUEBA 3
Private Sub Form_Load()
...
OLEind1.SetFocus
OLEind1.Action = acOLEClose
OLEind2.SetFocus
OLEind2.Action = acOLEClose
...
End Sub
- Resultado PRUEBA 3
No se actualiza ninguno de los dos OLE.
¿A alguien se le ocurre cómo puedo actualizar automáticamente los dos objetos OLE al cargar el formulario?