Tiempo de espera ejecución de código vba

Tengo un problema con una macro en excel ya que quiero automatizar un proceso pero necesito que el excel actualice todas las tablas dinámicas del archivo (lo cual tarda unos 30 segundos ya que viene de un access), y después ejecute otros dos códigos para finalizar la actualización del archivo

El inconveniente radica en en que necesito que en el código haga un retraso de esos 30 segundos ya que las dinámicas deben estar actualizadas antes de continuar, tengo el siguiente código:
Private Sub Workbook_Open()
ActiveWorkbook. RefreshAll
Application. Wait(Now + TimeValue(“00:00:30”))
Módulo2. ColoresIconos
Módulo3. ExportarIconos
End Sub
Pero el problema es que el archivo primero espera el tiempo que coloque en application. Wait y después si ejecuta ActiveWorkbook. RefreshAll

Respuesta
3

Prueba de esta forma:

Private Sub Workbook_Open()
ActiveWorkbook. RefreshAll
DoEvents
Application. Wait (Now + TimeValue("00:00:01"))
DoEvents
Módulo2. ColoresIconos
Módulo3. ExportarIconos
End Sub


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

1 respuesta más de otro experto

Respuesta
3

[Hola

Después del "ActiveWorkbook. RefreshAll" agrega la siguiente línea:

Application. CalculateUntilAsyncQueriesDone

Borra el "Application. Wait..."

Comentas

Abraham Valencia

Muchas gracias si me.funciono solo quisiera preguntar qué función cumple este código ?

Application. CalculateUntilAsyncQueriesDone

[Hola

Lo que haces es ejecutar todas las consultas pendientes a orígenes de datos; algo así como que no permite que se ejecute nada más hasta que dichas consultas (actualizaciones en tu caso) culminen.

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas