Responsables Supply Chain : VBA ou Power Query ?

Il ne s’agit pas, pour moi, de lancer le débat. Mais plutôt de poser la question autrement. 

Je m'adresse aux responsables supply chain qui passent, chaque semaine, plusieurs heures à transformer des données dans Excel. A un moment donné, vous allez vouloir automatiser votre processus de transformation. Vous serez alors tenté de vous lancer dans l’apprentissage du VBA. 

Le VBA (Visual Basic application) est un langage de script. Il sert à écrire du code. Et même s’il est fortement intégré à Excel, ça reste du code. Donc, si vous n’êtes pas développeur et que vous n’avez pas l’intention de le devenir, pourquoi l’apprendre ?

Vous connaissez la réponse. Dans la Supply Chain, on utilise Excel de manière intensive. Très souvent, les fichiers existants fonctionnent avec des macros VBA et le bouton magique “Mise à Jour”.

  • Le MRP donne trop d’alertes : Un fichier Excel

  • Les allocations de stock ne sont pas gérées par l’ERP : Un fichier Excel

  • Un nouveau reporting demandé par le management : Un fichier Excel

Le VBA va automatiser les traitements et les mises à jour. Il libère l’utilisateur de nombreuses tâches répétitives et source d'erreur. Pas besoin de faire appel au service Informatique. Il suffit d’ouvrir Excel et de se lancer. 

Mais son utilisation a de sérieuses conséquences. Une fois le créateur du fichier parti (changement de poste, stage terminé…), le fichier est alors modifié brique par brique en ajoutant à chaque fois une nouvelle strate de complexité. Il arrive souvent qu’il soit copié pour en faire une version légèrement différente.

Et le jour où le fichier cesse de fonctionner, les équipes IT refusent généralement d’en assurer le support. Il est souvent plus rapide de refaire le fichier plutôt que d’essayer de le corriger. Le piège se referme. l’utilisateur se retrouve seul face au VBA de son fichier.

Alors, comment faire si vous n’êtes pas développeur et ne souhaitez pas le devenir ? La réponse tient en un mot (en fait, deux !) : Power Query.

Je n’ai pas pour ambition de vous apprendre Power Query mais je veux vous convaincre de l’utiliser, de lui laisser une chance. 

Power Query est totalement intégré dans Excel. Il couvre 80% de vos besoins en transformation de données et ceci sans écrire une ligne de code. Chaque étape est enregistrée. Un simple clic sur le bouton Actualiser et vos données sont mis à jour. 

 Si vous aimez Excel, vous allez adorer PowerQuery (avant de devenir passionné de PowerBI…).

Power Query, que la force soit avec toi !

  • Ce qu’est Power Query

Power Query est un outil ETL. En anglais cela veut dire Extract, Transform and Load. L’outil vous permet d’extraire et de transformer des données avant de les importer dans Excel. C’est un outil Low-Code/No-Code (LC/NC). Il propose une interface graphique intuitive. Des menus et des blocs visuels préprogrammés écrivent le code à votre place. Un enregistreur de macro sous stéroïdes !

Power Query est aux formules Excel ce que l’usine est à l’atelier. Il vous permet de réaliser des opérations en masse sur vos données et de les reproduire jour après jour avec exactitude, sans erreur. 

Comme pour une chaîne de production, vous décrivez chaque étape de transformation de vos données. Vous pouvez les tester sans risque d'altérer les données sources, revenir en arrière et corriger. Et lorsque l’ensemble du processus est opérationnel, vous pourrez l'exécuter autant de fois qu’il vous plaira.

  • Ce que n’est pas Power Query

Power Query ne remplace ni Excel, ni le VBA.

Power Query ne permet pas de saisir de nouvelles données, de construire des Tableaux Croisés Dynamiques ou d'afficher des graphiques. Power Query ne vous permet pas de développer des applications. Il ne permet pas non plus de piloter Excel, ni de communiquer avec d’autres applications MS Office (Word, Outlook …).

Power Query remplace certaines fonctionnalités historiques d’Excel et y ajoute d’autres fonctionnalités qui n'étaient accessibles qu’en ayant recours au VBA. Il couvre de manière exhaustive vos besoins dans un domaine limité : celui de la transformation de vos données.

Vous n’êtes pas encore convaincu ? Nous allons passer en revue trois avantages clés de Power Query, trois supers pouvoirs, qui vont définitivement vous persuader de lui donner une chance.

  1. Importer tous types de données quelque soit la source

  2. Mettre à jour vos rapports d’un simple clic sans recours au VBA

  3. Apprendre à exploiter la puissance de l’outil à son rythme

L’objectif premier de Power Query est de vous faire gagner des heures. Et de vous les faire gagner chaque semaine, chaque mois en automatisant les tâches répétitives de transformation de vos données que vous faites dans Excel.

Power n°1 : Se connecter à (quasi) n’importe quelle source de données

Fini les échanges interminables avec le service informatique pour obtenir le fichier que vous attendez au bon format. Avec Power Query, vous prenez ce qui existe et il s’occupe du reste. Imaginez le nombre d’heures gagnées !

Power Query fournit une connectivité à des centaines de sources de données, Les fichiers, bien sûr (Classeur Excel, Text/CSV, PDF…), les bases de données (Access, SQL Server) mais également le web, les flux OData, OLE, Odbc…

La connexion à une source de données avec Power Query suit un ensemble standard d’étapes : Paramètres de connexion ; Authentification ; Aperçu des données ; Destination de la requête.

Cette capacité à récupérer tous types de données quelque soit sa provenance, vous ouvre des possibilités d’analyse ou de reporting immenses :

  • Croisez les données de votre WMS avec celles de votre ERP. 

  • Valoriser vos indicateurs logistiques à partir des fichiers de la Finance. 

  • Simulez des scénarios avec les données de l’entreprise. 

En partant des sources de données disponibles, vous êtes capable, grâce à Power Query, de constituer le jeu de données exact qui correspond à votre besoin. Vous reprenez la main. Vous gagnez en autonomie et vous économisez surtout énormément de temps.

Power n°2 : Concevoir une fois, exécuter mille fois

L’éditeur Power Query est l’interface dans laquelle vous construisez pas à pas les transformations successives de vos données pour obtenir le jeu de données correspondant à votre besoin. 

Vous pouvez supprimer ou ajouter des colonnes mais aussi filtrer les données. Vous pouvez ajouter les données d’une table à une autre, fusionner les colonnes de plusieurs tables et beaucoup d’autres transformations sans écrire la moindre ligne de code.

Chacune de vos actions est enregistrée. Un aperçu du résultat intermédiaire est affiché. Vous pouvez vérifier le résultat de la transformation, revenir en arrière, modifier les paramètres et construire pas à pas votre processus complet de transformation.

Dans Power Query, transformer des données ressemble à l’utilisation de l’enregistreur de macro d’Excel. Vous exécutez vos actions de transformation les unes après les autres. A chaque action correspond une étape qui est enregistrée et vient s’ajouter dans le volet Paramètres d’une requête. 

Une fois obtenu le jeu de données souhaité, les différentes étapes de transformation que vous avez effectuées constituent un script qui sera exécuté à l’identique à chaque fois que vous demanderez l’actualisation des données.

Vous avez construit tranquillement, étapes par étapes votre jeu de données par transformations successives. Vous allez pouvoir maintenant l'exécuter à chaque fois que vos données sources sont mises à jour en ayant la certitude du résultat attendu.

Enfin, le jour où il faudra faire évoluer ou corriger le processus établi, Power Query vous permet de le faire facilement. Ajout d’une colonne dans le jeu de données final ou changement de formule de calcul d’une des valeurs. C’est le quotidien de la vie d’un rapport Excel dans toutes les entreprises.

Les étapes de transformations étant enregistrées, il est très facile d’en modifier les paramètres, d’ajouter une étape ou au contraire d’en supprimer une. L’évolution est facile car les étapes sont nommées et ordonnées. L'aperçu du jeu de données à chaque étape de transformation permet d’identifier à quel endroit la correction ou l’évolution doit être implémentée.

Construction simple et rapide des étapes de transformation, exécution instantanée du processus complet lors des mises à jour et évolution facile du processus. Que demander de plus !

Power n°3 : monter en puissance à son rythme

L’apprentissage de Power Query comporte trois niveaux :

Le premier niveau consiste à utiliser les fonctions prédéfinies via l’interface graphique de l’éditeur Power Query. Ces transformations peuvent être aussi simples que la suppression d’une colonne ou le filtrage de lignes, ou aussi courantes que l’utilisation de la première ligne comme en-tête de tableau. Il existe également des options de transformation avancées telles que la fusion, l’ajout, le regroupement.

Maîtriser ce premier niveau s’apparente à un processus de découverte où on assemble les étapes de transformation, brique après brique, pour construire son processus de transformation. L’apprentissage se fait par essai/erreur. 

Plus vous utilisez Power Query, plus vous allez vite. En quelques semaines, vous dominez votre sujet. Progressivement, cet apprentissage par la pratique va vous permettre de couvrir jusqu’à 80% de vos besoins en transformation de données et donc de réduire d’autant le temps consacré à ces tâches. 

Au deuxième niveau, vous allez commencer à utiliser le langage M pour écrire des fonctions personnalisées de transformation, un peu à la manière des formules Excel. L’exemple type est la création d’une colonne personnalisée pour effectuer un calcul sur plusieurs colonnes.

Au fur et à mesure de vos besoins, vous apprendrez à construire des “formules” en langage M. La liste des fonctions disponibles est très importante. La plupart des fonctions Excel ont leur équivalent en M. Il vous faudra les identifier et en respecter la structure.

Enfin un troisième niveau sera de maîtriser progressivement toute la puissance qu’offre le langage M pour réaliser des transformations complexes. Mais là, vous basculez du côté obscur de la force au risque de vous transformer en développeur, ce que vous ne voulez pas.

Power Query, quelques bonnes pratiques

Choisir le bon connecteur

Avant d'essayer de récupérer coûte que coûte des fichiers CSV voir Excel de vos données, demandez-vous si vous pouvez vous connecter directement à l’application qui les héberge. Et avant d’utiliser le connecteur ODBC, vérifiez s’il n’existe pas un connecteur dédié à votre application ou à votre base de données. 

Filtrer les données au plus tôt

Il est toujours recommandé de filtrer vos données dès les premières phases de votre processus de transformation. Certains connecteurs vont tirer parti de vos filtres pour minimiser le volume de données à rapatrier. Les fonctionnalités de filtre proposées sont très faciles d’utilisation. La richesse des options disponibles vous permet de faire la plupart des opérations de filtre sans écrire une seule ligne de code.

Vérifier toujours les types de données de vos colonnes

Power Query propose une détection automatique du type de données. Il est important de vérifier les types de données affectés à vos colonnes. Certaines fonctionnalités de Power Query en dépendent. Par exemple, quand vous sélectionnez une colonne de date, les options disponibles sous le groupe Colonne de date et d’heure dans le menu Ajouter une colonne sont disponibles.

Un dernier mot, Maître Yoda ?

Tu veux savoir la différence entre un maître et un apprenti ? 
Le maître a échoué plus de fois que le débutant n’a essayé
— Yoda

Vous savez maintenant ce qu’il vous reste à faire…

J’espère sincèrement vous avoir convaincu de donner une chance à Power Query.  Prenez une heure ou deux et essayez avec vos propres données.

Alors assez de théorie et place à la pratique ! En 10 minutes chrono, je vous propose de construire un tableau de bord de A et Z avec cet article : KPI Supply Chain : Suivi du CA avec Power Query

Si vous êtes intéressé par Power BI, je vous conseille la lecture de cet article : Power BI : déconstruction d’un rapport simple

Et si vous souhaitez d’autres articles sur Power Query, dites le moi en commentaires