[Resolu]Comment être sur que après "activeworkbook.refreshall " que l'actualisati..

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Paritec

XLDnaute Barbatruc
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🙂
 
Dernière édition:
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.

A+
 
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 😉
 
Dernière édition:
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.

A+
 
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
 
Re : Comment être sur que après "activeworkbook.refreshall " que l'actualisation est

Bonjour à tous

Sinon, vous ne pouvez pas mettre à jour les requêtes Web automatiquement à l'ouverture du classeur (voir Image dans les propriétés) 😕.

Sinon, un petit fichier nous permettrait d'y voir plus clair 🙂.
 

Pièces jointes

  • ReqWebPropriété.jpg
    ReqWebPropriété.jpg
    100.2 KB · Affichages: 178
Re : [Resolu]Comment être sur que après "activeworkbook.refreshall " que l'actualisat

Bonjour à tous,

@Papou, voici la réponse à ton MP.

Les mp ne sont pas là pour solliciter les intervenants au sujet des fils de discussion.(reste dans le fil)

C'est l'évènement de la classe qui incrémente la propriété RefreshCount.
Code:
Private Sub moQuery_AfterRefresh(ByVal Success As Boolean)
RefreshCount = RefreshCount - Success
End Sub

Success est passée par Excel à l'évènement AfterRefresh. Comme c'est un boolean true=-1 et false = 0)

RefreshCount = RefreshCount - Success
equivaut à
RefreshCount = RefreshCount +1 (Success= vrai) -(-1)=+1
ou
RefreshCount = RefreshCount -0 (Succes = false)

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

H
Réponses
2
Affichages
957
H
B
Réponses
4
Affichages
2 K
benoitoleron
B
S
Réponses
1
Affichages
1 K
SCorbeil
S
L
Réponses
1
Affichages
1 K
Lucien31
L
A
Réponses
0
Affichages
795
A
Retour