Inicio > Microsoft Excel > avalenciape > Ayuda con error en Macro

Ayuda con error en Macro

Experto:
Usuario:
Fecha: 29/08/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
27/08/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
Te molesto nuevamente, para ver si puedes ayudarme con un error que me surge al actualizar las base de datos
Tengo una macro que abre otro libro que a su vez busca info en una base de satos sql. resulta que en ese libro ejecuto una macro llamada (A), dentro de la cual esta contemplada la funcion refreshall, luego grabar y luego buscar unos datos con filtros copiarlos y sacarlos al libro maestro, Pero resulta que al ejecutar la la macro Da la sensacion que realiza todo el proceso , pero la actualizacion de datos no la termina de hacer hasta el final de la macro, y por consiguiente los datos que traigo, no estan actualizados, He probado diversas cosas, entre ellas grabar el libro una vez actualizado pero igualmente me aparece una advertencia que dice (esta accion cancelara un comando pendiente de actualizacion) la cual debo poner cancelar para que siga el proceso de actualizacion 
 Se te ocurre algo como para que se actualize el archivo antes de ejecutar la macro y demas  (como aclaracion te digo que la base de datos, ya esta tildada en actualizar al abrir) ??? , te pego la macro debajo
Sub A()
Call LIMPIAR
Call ACTUALIZA
ActiveWorkbook.Save
Sheets("CABEZERA").Select
Range("i19").Select
End Sub

Sub ACTUALIZA()
' ACTUALIZA Macro
ActiveWorkbook.RefreshAll
End Sub
desde ya muchas gracias x la ayuda
 
28/08/2008
saruzza, experto respondiendo en Microsoft Excel
Experto
Hola, cuando "actualizas" una "consulta de datos externos" (o similar), esta, por defecto esta habilitada para hacerlo en "segundo plano", es decir, paralelo a otros eventos, entonces, puede ir a la configuracion de tu "consulta de datos...." y quitalre el check a "habilitar actualizacion en segundo plano", o hacerlo a traves de tu misma macro.
'Quitamos la habilitacion en segundo plano
With ActiveWorkbook.Connections("TablasNed").OLEDBConnection
.BackgroundQuery = False
End With
'Actualizamos
ActiveWorkbook.RefreshAll
'Volvemos a habilitar - solo si quieres ;)
With ActiveWorkbook.Connections("TablasNed").OLEDBConnection
.BackgroundQuery = True
End With
'guardamos
ActiveWorkbook.Save
Abraham
29/08/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
Genio!!!!!!!!!!!
Si te hubiera preguntado antes, me habria evitado horas de pruebas
GRACIAS!!!!!!!!!
Enlaces patrocinados