Necesito ejecutar una macro luego que todo el libro de excel esté actualizado... Tengo excel 2007

Tengo un libro en excel con diferentes hojas que traen datos desde una base en SQL. Yo las actualizo todas a través de "ThisWorkbook.RefreshAll" pero necesito que una vez que esté todo actualizado poder correr otra macro que copia el valor de todas las hojas en una hoja resumen (esa macro ya la tengo).

Mi problema es que no sé cómo hacer que esa macro se ejecute cuando ya esté todo actualizado, para que no se quede ningún dato fuera.

Estuve viendo que hay un evento de applicatoin. Aftercalculate pero no sé si me sirve ni sé usarlo.

1 Respuesta

Respuesta
1

Has la llamada a la segunda macro luego de esta linea

"ThisWorkbook.RefreshAll"

Asi lo primero es actualizar y luego corres la macro que deseas

eso es lo que tengo, pero cuando llama a la macro, aún no está actualizada la tabla, y me la copia con los valores antiguos...

son varias tablas que están en diferentes hojas y lo que necesito es que cuando actualice TODAS las hojas, corra la macro (ya que esa copia todo lo que está en cada hoja)...

agradezco mucho su tiempo...

Eso sucede por que seguro la actualizacion tarda demasiado, y esta en segundo plano puesto que vb pasa a la linea siguiente del procedimiento.

* No veo una solucion elegante al tema, pero te puedo sugerir lo sgte.

Utiliza el metodo wait, asi le das una pausa ( luego de iniciar refresh), no lo he utilizado nunca tal vez te funcione

Ejemplo:

Dim hora As String

ThisWorkbook.RefreshAll

hora = Time + CDate("00:01:00") ' le das un minuto mas a la hora de ejecucion

Application.Wait Application.Wait(hora)

tu _segundo macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas