Bonjour à tous,
je souhaite dans une macro mettre à jour ma base avec un activeworkbook.refreshall mais actuellement quand j'insère cette demande dans la macro, en début de macro naturellement, la mise à jour se fait mais quand tout le déroulement de la macro est terminé ???
J'ai oublié quoi?? c'est pour actualiser trois requêtes Web avant de lancer mon traitement des données.
dans l'attente de vous lire
a+
papou
Re : Comment être sur que après "activeworkbook.refreshall " que l'actualisation est
Bonjour Papou,
Pour aller au plus simple, tu peux mettre ceci dans ton module de feuille qui contient la queryTable
En supposant que la WebQuery s'appelle "MaQueryTable":
VB:
Dim WithEvents MyWebquery As QueryTable
Private Sub MyWebquery_AfterRefresh(ByVal Success As Boolean)
LancerLaMacro
End Sub
Private Sub Worksheet_Activate()
Set MyWebquery = Me.QueryTables("MaQueryTable")
End Sub
ce pour chaque QueryTable. Ou alors faire un module de class avec une collection de QueryTables.
Re : Comment être sur que après "activeworkbook.refreshall " que l'actualisation est
Bonjour Paritec, Bonjour Hasco
Peut-être mettre la propriété Backgroundquery de tes 3 requêtes (queryTable) à False, il devrait attendre la fin de l'actualisation avant de passer à la suite du code
Edit : @Hasco : toujours intéressant de voir comment gérer des évènements supplémentaires, je garde ton code sous le coude, merci
Re : Comment être sur que après "activeworkbook.refreshall " que l'actualisation est
Re,
Tototiti
Papou@ Si ta macro doit attendre le rafraîchissement des 3 querytable: dans le fichier joint, un module de classe QueryTable qui incrémente une propriété publique du classeur "RefreshCount" (module1) qui émet un msgbox lorsque les 3 queryTables sont rafraîchies.
Re : Comment être sur que après "activeworkbook.refreshall " que l'actualisation est
Bonjour Hasco Tototiti le forum
merci pour vos réponse je teste de suite , mais tu as parfaitement saisi le pourquoi Hasco
je teste et je vous redis merci beaucoup
a+
Papou