Utilisation de la fonction Wait

Bonjour à tous,

Je voudrais savoir si l'utilisation de la fonction Application.wait dans une macro, bloque tout le fonctionnement de excel?

Je m'explique, j'ai une macro excel qui commence par mettre a jour des données, les actions manuelles équivalentes sont Onglet Données/Actualiser tout, les requêtes qui sont lancées sont assez longues a ce mettre a jour et c'est pour cela que je dois attendre avant de lancer la suite de ma macro.

voici a quoi ressemble mon début de code:

Sub Auto_open()

ActiveWorkbook.RefreshAll

Application.Wait (Now + TimeValue("00:05:00"))

.
.
.

Je voudrais être certain que l'exécution de la mise a jour des requêtes ne soit pas 'mis en attente' aussi, car j'ai vu que cette fonction mettait en attente tous les événements de Excel, et aux vu de mes résultats j'ai bien l'impression que la mise a jour n'est pas faite complément.

Avez vous une autre piste ?

merci

Bonjour

Déjà dans les propriétés de la ou des requêtes, désactiver la mise à jour en arrière plan.

Il me semble aussi que l'on peut définir l'ordre de mise à jour notamment s'il y a des liens externes : à creuser

Bonjour à tous,

Peut-être que vous pouvez essayer de déterminer quel élément change toujours à l'issue d'une requête.

En partant de ça, vous pouvez utiliser une boucle :

Sub Auto_open()

valeurdepart = element.value 'exemple

ActiveWorkbook.RefreshAll

while element.value = valeurdepart
    DoEvents
    'Application.Wait Now + TimeValue("00:00:01")
wend

ou alors, en utilisant le timer :

Sub Auto_open()

ActiveWorkbook.RefreshAll
t = timer

while timer - t < 300
    DoEvents
    'Application.Wait Now + TimeValue("00:00:01")
wend

Je ne m'y connais pas assez mais DoEvents permet de céder le contrôle au système et de traiter les évènements en attente. Ainsi, au sein de la boucle (en activant éventuellement la ligne wait), je me dis qu'on s'assurerait de ne pas court-circuiter les évènements de l'application...

Cdlt,

Merci pour vos retours, je vais regarder les différentes pistes.

je me suis aperçu également que je ne faisais pas de calcul dans mes feuilles après mises a jours des requêtes.

Je vais donc ajouter calculate pour voir si le résultat change.

Rechercher des sujets similaires à "utilisation fonction wait"