Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 executer des instruction quand une requête est finie

dodineau

XLDnaute Occasionnel
Bonjour à toutes et tous.
J'ai une requête qui se met à jour par cette commande : Range("A1").ListObject.QueryTable.Refresh ou aussi si j'ai plusieurs requêtes : ActiveWorkbook.RefreshAll
Ensuite j'ai des instructions qui doivent s'exécuter mais pas avant que la ou les requêtes ne soit actualisées.
Existe-t-il une instruction qui permet d'attendre que la ou les requêtes ne soient à jour ?
Merci pour votre aide.
A+
 

job75

XLDnaute Barbatruc
Bonjour dodineau, le forum,

A priori l'actualisation d'un tableau crée l'évènement Calculate donc utiliser :
VB:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False 'désactive les évènements
'votre code
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, job75,

Voici un exemple avec les évènements Before_Refresh et After_Refresh de la QueryTable.

cordialement
 

Pièces jointes

  • Requête évènements.xlsm
    34.3 KB · Affichages: 19

dodineau

XLDnaute Occasionnel
Bonjour et merci pour ces réponses.
Job75 : Je ne comprends pas ou je dois placer votre code. Et mon code si je le place entre les 2 Application.EnableEvents il va s'exécuter à chaque calculate ? Non ?
Merci.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Roblochon comment je peux transformer ce code ?

Je ne me risquerai pas à répondre sans un fichier exemple avec ce que vous avez tenté de faire, car si vous ne savez pas adapter ce premier jet, vous ne saurez pas non plus au second.

On ne sait même pas si les requêtes sont dépendantes l'une de l'autre.

Cordialement
 

dodineau

XLDnaute Occasionnel
Ce sont des requêtes complètement indépendantes.
Elles reprennent des données de 2 tables access.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…