|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2007 Messages : 50 ![]() |
Bonjour à tous. Je viens vers vous pour savoir s'il est possible de contrôler l'achèvement ou non de la mise à jour d'une requête web.
J'explique mon problème. J'ai un classeur dynamique qui actualise les données en provenance du web. Ensuite j'ai une macro qui met en forme ces données. Mon problème, c'est que si l'utilisateur clique sur le bouton avant l'achèvement de l'actualisation, ben il se trouve avec une erreur... J'ai essayé sans succès un if sur un refresh all du genre : Code :
If ActiveWorkbook.RefreshAll = OK Then |
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() |
je ne comprends pas le but de ton code...
Je ne sais pas comment tester la fin de la requête Web mais :
Code :
Non testé car je m'avance sans connaitre le problème. ESVBA |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2007 Messages : 50 ![]() |
Salut ESVBA, merci de t'intéresser à mon problème.
Je t'explique plus précisément le problème. En fait mon classeur est composé de trois feuilles. Deux feuilles en dynamique (l'intégralité des données sont récupérées par une requête web sur serveur). Ensuite j'ai une macro de traitement et mise en forme de ces données sur la dernière feuille. J'ai laissé l'activation automatique de l'actualisation des données à chaque ouverture du fichier. Ca prend environ 5-10 secondes, ca dépend. Le problème, c'est que si tu n'y penses plus (ce qui arrive malheureusement souvent) et que tu cliques sur le bouton avant que le rafraichissement ait lieu, ben la macro fait le travail pour rien. Et t'es obligé de recommencer. Pour éviter ce problème et tu l'as bien compris, ce serait d'activer le bouton uniquement quand l'actualisation est terminée. Ton idée est remarquable, je n'y avais pas songé. Mais je ne connais malheureusement jamais la dernière ligne des deux feuilles en dynamique. Donc difficile à effectuer. Concernant le code (bidon je te l'avoue) c'était de savoir s'il existe une possibilité de tester la fin de l'actualisation. Comme l'actualisation fonctionne par un bon vieux ActiveWorkbook.RefreshAll, je me disais qu'il y'avait possibilité de tester cette fonction, mais je confirme que non. Je testerai cependant un truc auquel je viens de penser. A la limite, je désactive l'actualisation automatique au démarrage. Je la lance dans ma macro en faisant ActiveWorkbook.RefreshAll en début de code et après seulement je call ma macro de mise en forme. En espérant que ma macro de mise en forme attende la fin de l'actualisation... |
|
|
00
|
|
|
#4 | |
|
Membre expérimenté
![]() |
question certainement idiode :
Citation:
Il faudrait un évènement du type "Ne fait plus de calcul" ou "ne change plus". Une solution pour réaliser une machine à gaz :
ESVBA Dernière modification par ESVBA ; 15/03/2010 à 21h46. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com