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.
- 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.
- Ensuite, vous allez dans le menu Affichage, section Macros et vous cliquez sur l’option Macros. Puis vous choisissez l’option Enregistrer une macro.
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 :
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.
- Il faut ensuite arrêter l’enregistreur. Pour ce faire, allez dans le menu Macros puis choisissez l’option Arrêter l’enregistrement.
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.
Voici le code VBA qui a été créé :
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
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.
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.
Enfin, vous choisissez la macro qui doit être exécutée.
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 :
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.