Actualisez vos requêtes Power Query avec VBA

Publié le 28 septembre 2022
par Kim Leblanc BAA
Actualiser vos requêtes Power Query avec VBA

Pourquoi actualiser vos requêtes Power Query avec VBA ?

Dans Excel, il y a plusieurs raisons pour lesquelles actualiser vos requêtes Power Query avec VBA peut être utile, en voici 3 :

 

1. Faciliter l’actualisation pour les utilisateurs

En effet, il est fort pratique de permettre à l’utilisateur de cliquer sur un bouton pour actualiser les requêtes sans avoir à aller dans les menus. Il n’a pas à chercher et connaître Power Query. Ça lui facilite la tâche.

 

2. Ordonnancer l’actualisation

Il peut arriver qu’une requête doive absolument être actualisée avant une autre sans quoi les résultats des requêtes subséquentes seront faussés.

Exemple, j’importe des données d’un fichier de planification que j’utilise dans un tableau de calculs. J’ajoute des ajustements manuels dans ce tableau de calculs puis j’utilise ce dernier comme source d’autres requêtes pour permettre d’évaluer ma production.

C’est ce cas qui est illustré dans le fichier d’accompagnement de cet article.

 

3. Isoler certaines requêtes

Il est parfois préférable d’isoler des requêtes qui sont longues à exécuter et qui n’ont pas à l’être à chaque fois que nous actualisons les données.

Exemple, vous avez des requêtes pour 2 besoins différents dans un même fichier. Un besoin qui demande d’actualiser vos données toutes les 30 minutes et l’autre seulement une fois par jour. Pour accélérer le rafraichissement, on pourrait scinder l’exécution des requêtes en 2.

 

Voici la procédure à suivre pour automatiser l’actualisation avec VBA

 

Création de la macro VBA

Si vous n’êtes pas familier avec la création de macros VBA dans Excel. Vous pouvez utiliser l’enregistreur de macro pour vous aider.

  1. Affichez le panneau de requêtes et connexions pour voir les requêtes Power Query
    • Menu Données, Section Requêtes et connexions, option Requêtes et connexions.

Actualiser vos requêtes Power Query avec VBA

 

  1. Ensuite, vous allez dans le menu Affichage, section Macros et vous cliquez sur l’option Macros. Puis vous choisissez l’option Enregistrer une macro.

Actualiser vos requêtes Power Query avec VBA

Actualiser vos requêtes Power Query avec VBA

 

Il faudra indiquer le nom que vous voulez donner à votre macro et vous assurez que l’option Ce Classeur est sélectionnée sous Enregistrer la macro dans :

Actualiser vos requêtes Power Query avec VBA

 

Une fois que vous aurez appuyé sur le bouton OK, l’enregistreur de macro est prêt, il suffit de faire les actions suivantes :

  • Allez dans le panneau de requêtes que vous avez ouvert précédemment et cliquez sur l’icône d’actualisation de la requête que vous voulez actualiser à l’aide de la macro.

Actualiser vos requêtes Power Query avec VBA

  • Il faut ensuite arrêter l’enregistreur. Pour ce faire, allez dans le menu Macros puis choisissez l’option Arrêter l’enregistrement.

Actualiser vos requêtes Power Query avec VBA

 

Vous pouvez aller voir le code VBA que l’enregistreur a créé pour vous.

  • Toujours dans le menu Macro, choisir l’option Afficher les macros.

Choisissez la macro en question et puis cliquez sur Modifier.

Actualiser vos requêtes Power Query avec VBA

 

Voici le code VBA qui a été créé :

Code VBA

 

Une simple ligne de code permet d’actualiser une requête spécifique : ActiveWorkbook.Connections(“Requête – Req1_Planification_MiseEnForm”).Refresh

  • Si vous voulez actualiser une autre requête, vous avez simplement à changer la section où l’on fait référence au nom de la requête: Req1_Planification_MiseEnForm, par le nom de la nouvelle requête.
  • Si vous voulez actualiser plus d’une requête, vous pouvez répéter et ajuster cette ligne de code pour chacune des requêtes en question.

Note : Si vous utilisez une version anglaise d’Excel, il faut changer le terme Requête pour Query (voici un exemple : ActiveWorkbook.Connections(“Query – Req1_Planification_MiseEnForm”).Refresh)

 

Dans le cas de notre exemple, nous avons créé une 2e macro pour actualiser notre 2e requête

Code VBA

Création du bouton

Une fois que vos macros sont prêtes, vous pouvez créer vos boutons à l’aide des formes dans Excel.

Allez dans le menu Insertion, section Illustration, option Forme. Choisissez et insérez la forme qui vous convient dans votre onglet. Ensuite, vous y inscrivez le texte de votre choix.

Actualiser Power Query avec VBA

 

Affecter la macro à votre bouton

Vous pouvez ensuite affecter votre macro à votre bouton en cliquant avec le bouton droit de votre souris et en choisissant Affecter une macro.

Actualiser vos requêtes VBA

 

Enfin, vous choisissez la macro qui doit être exécutée.

Power Query avec VBA

 


Fichier d’accompagnement VIP à télécharger

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

Formation complémentaire

Pour une introduction à la programmation avec le langage VBA, qui permet de sauver du temps et de réduire les risques d’erreurs en automatisant certaines tâches et certains processus, afin de développer des solutions robustes dans Excel, suivez la formation Excel – VBA (niveau 1).

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Excel – VBA (niveau 1)

CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

1 réflexion sur “Actualisez vos requêtes Power Query avec VBA”

  1. Bonjour
    Il est important de noter que les espaces avant et après le tiret (entre le mot “Requête” et nom de la requête) sont des espaces insécables (code ASCII 160) et non des espaces classiques (code ASCII 32).
    A savoir lorsqu’on tape le code plutôt que de recopier ce qui est enregistré automatiquement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut