VBA - Lancer une macro X secondes après un évènement

Bonjour à tous,

J'ai un classeur contenant des données provenant de Query. Puis ces données sont copiées dans un autre tableau, via une macro "modcopy"

Mais je voudrais automatiser le truc. J'ai créé un .bat qui ouvre excel, mon tableau Query (appelons le "Planning"), et lance la macro "modcopy".

Sauf que, l'actualisation des données Query prend un certain temps. Enfin, tout est relatif, ça prend quelques secondes, mais du coup, ma "modcopy" se déclenche trop tôt.

J'ai donc désactivé l'actualisation des données à l'ouverture et périodique, et j'ai fait une macro "modrefresh", qui actualise ces données.

J'ai donc ma sub suivante

Sub miseajour ()

modrefresh
modcopy

End Sub

Je souhaiterais donc simplement savoir comment faire pour déclencher "modcopy" une fois l'actualisation exécutée par "modrefresh" terminée. Ou lui mettre un délai, peu m'importe.

En gros, je voudrais faire Ouverture du fichier -> Refresh des données Query (ou lancement de "modrefresh") -> On attend un peu (disons 1 minutes) -> Lancement de "modcopy"

Cela ne doit pas être insurmontable, mais je bloque !

Merci d'avance pour vos réponses

Bonjour,

Si tu fais un truc du genre :

Sub miseajour ()

modrefresh
Application.OnTime Now + TimeValue("00:00:30"), "modcopy" 

End Sub

bonjour,

peut être simplement un

DoEvents

entre les deux ?

A+

Pfff quelle buse, je savais pas qu'on pouvait appliquer OnTime de cette façon.

Merci pour ta rapidité, c'est super !

Dieu te bénisse

Sujet résolu !

Bonjour,

Dans les propriétés des requêtes actualisées dans modrefresh, décoche Enable background refresh.

Cdlt.

Bonjour Jean-Eric,

Désolé je n'avais pas vu ta réponse.

C'est fait, merci

Rechercher des sujets similaires à "vba lancer macro secondes evenement"