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

Power Query Index TP de l'INSEE - Ajuster une formule à chaque mise à jour d'un tableau généré avec PQ

Emeric_Pasteur

XLDnaute Nouveau
Bonjour, je m'appelle Emeric et je suis nouveau sur le forum.
Je débute avec l'utilisation de Power Query.

Voici un fichier joint et une description de ce que j'essaie de faire.
Objectif : télécharger sur le site de l'INSEE tous les index TP puis en extraire une valeur

Structure du classeur :
- une feuille 1 "Recherche INDEX TP", pour que l'utilisateur précise les critères (critères : un index, par exemple TP03, et une date, par exemple 08-2024)
- une feuille 2 "PQ valeurs index TP tous", Power Query avec la requête vers le site de l'INSEE qui regroupe tous les index TP
- d'autres feuilles sans intérêt pour ma question
Fonctionnement :
Dans la feuille 2 avec la PQ, j'ai ajouté un second tableau qui vérifie si la ligne est la bonne (avec le bon index TP et la bonne date) afin d'afficher la valeur "1" ; la feuille 1 recherche la ligne avec la valeur "1" et en extrait la valeur de l'index TP.

Question :
Je ne suis pas sûr que mon classeur fonctionnera lors de la prochaine mise à jour de la base des index de l'INSEE (le mois prochain) : le nombre de lignes de la PQ va changer me semble-t-il, mais quid du second tableau à côté ?
Cela va-t-il fonctionner ?
Sinon, comment puis-je corriger les feuilles ?
Voire, y a-t-il une autre approche plus simple (pas de VBA...) ?

Merci à vous par avance.
 

Pièces jointes

  • Import index TP final.xlsx
    147.5 KB · Affichages: 18

Staple1600

XLDnaute Barbatruc
Re


@laurent950
le premier point c'est que le site web autorise dans ses CGU l'extraction de ses données
(ce qui permet du coup d'être raccord avec le point 8 de la charte du forum)
Ensuite, l'avantage de PQ dans un cadre professionnel contraint (interdiction d'utiliser le VBA), c'est que l'on peut faire beaucoup de choses sans macros (juste en langage M) dans un classeur avec une extension *.xlsx
Par exemple dans mon boulot, si j'envoie à un collègue un classeur par mail avec une macro, le mail est bloqué et la PJ directement supprimée.
Pas si j'envoie un classeur *.xlsx avec des requêtes PQ
Autre avantage, avec PQ, il y a un assistant assez intuitif qui se pilote à la souris
Idéal pour commencer (et surtout pas besoin de connaitre la syntaxe du langage M)
Cela viendra ensuite (voir ici pour des lectures en vue longues soirées d'hiver )

Je laisse @chris et d'autres amateurs XLDiens de PQ te vanter ses qualités
 

laurent950

XLDnaute Barbatruc
Re,

Tout d'abord, merci pour le rappel de la charte du forum, @Staple1600. Même si je la connais depuis plusieurs années, c'est toujours utile de l'avoir en tête, surtout pour les nouveaux arrivants.

Je te remercie également pour le lien et les explications que tu as partagés, cela m'a été d'une grande aide. Quant au langage M, je reconnais qu'il représente une belle opportunité d'apprentissage, en particulier pour quelqu'un qui n'a pas encore d'expérience en VBA. C’est une approche intéressante à découvrir pour certains cas d’utilisation.

Cependant, en ce qui concerne la demande initiale (cf. Poste #1), je trouve personnellement que l'utilisation du langage M et des fonctions matricielles semble un peu lourde pour obtenir une simple valeur. C’est une méthode certes puissante, mais pour cette tâche précise, cela me paraît un processus trop fastidieux.

De mon côté, avec quelques lignes de code VBA, j’obtiens un résultat immédiat et précis (en développement du code VBA une dizaine de minutes), tout en gardant la possibilité d'évoluer et de personnaliser davantage le processus si nécessaire par la suite. C’est pourquoi je continue de privilégier VBA dans ce contexte, qui reste à mes yeux plus direct et flexible.

Merci encore, @Staple1600, pour ta réponse et ton aide précieuse.
 

Staple1600

XLDnaute Barbatruc
Re

@laurent950
Tout dépends du contexte
Le VBA c'est bien quand on peut l'utiliser librement et que l'on est soi-même l'utilisateur final.

Les potentiels problèmes avec le VBA, c'est quand le classeur est destiné à des tiers(*) qui ne maitrisent pas le VBA et qui se retrouvent perdus quand un bug survient (surtout quand s'affiche des MsgBox en anglais)

Avec PQ, on peut un peut plus limiter la casse et éviter l'écueil que je cite plus haut
(environnement de travail sans VBA) (**)

(*) aléas mémorables vécus avec des collègues ... souvenirs, souvenirs

(**) je ne sais pas si les DSI peuvent toujours faire des installations d'Office sans VBA
C'était le cas avant avec les vieilles versions

NB: On devrait poursuivre l'échange dans une discussion dédiée parce que là on s'éloigne du sujet
Et c'est pas notre discussion
 

chris

XLDnaute Barbatruc
Bonjour
Ma dernière proposition ne contenait pas de formule matricielle (d'ailleurs appeler un simple INDEX/EQUIV une formule matricielle est un peu exagéré)

La puissance d'une requête surtout sur un ensemble de données est bien plus simple que l'ouverture de n csv par VBA.
On peut d'ailleurs, comme je l'ai évoqué, listés les identifiants à rapatrier afin de d'avoir une requête pilotable sans toucher à rien ou même ne récupérer que l'identifiant correspondant au choix effectué.
Une requête en 8 étapes simples suffit alors.

Le plus lourd ici est la requête qui découpe les lignes du tableau de l'onglet Liste index en 6 colonnes
Je ne sais d'où il vient et si une liste des identifiants seuls existe.
 

laurent950

XLDnaute Barbatruc
Bonsoir @chris,

Sur le site de l'INSEE, les valeurs des index BT et TP sont disponibles en téléchargement sous forme de fichiers csv et xlsx

Par exemple, dans le cas des index BT01 et BT02, la colonne correspondant à BT01 devrait apparaître avant celle de BT02, mais ce n'est pas le cas. Mais c'est pas le cas dans les fichiers csv et ou xlsx

Si Power Query permet de modifier cela directement à partir du fichier téléchargé, pour ensuite organiser les données correctement dans Excel, alors ce serait une solution intéressante. Est-il possible d'utiliser Power Query pour réorganiser les colonnes de manière automatique et injecter le tout dans Excel dans le bon ordre ?

Le plus lourd ici est la requête qui découpe les lignes du tableau de l'onglet Liste index en 6 colonnes
Je ne sais d'où il vient et si une liste des identifiants seuls existe.

Enfin, il faudrait transposer les données, puis classer les index BT de 01 à 54 et les TP de 01 à 14. Actuellement, l'ordre semble avoir changé lorsque j'ouvre le fichier XLSX : rien n'est correctement organisé. Il faudrait donc se pencher sur cette question avec Power Query pour remettre tout en ordre automatiquement.

Merci d'avance pour ton éclairage !
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Je ne connais rien à ces index.
A priori l'accès se fait via l'identifiant.
Donc donne ceux-ci afin que je puisse comprendre tes remarques.

Mais ici je répondais à la question de départ et tu sembles partir sur autre chose...
 

Discussions similaires

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