XL 2019 Récupération valeurs à partir d'un fichier source

sum01

XLDnaute Occasionnel
Bonsoir le Forum,

Je suis confronté à un problème de récupération de données à partir d'un fichier source. J'ai un fichier source dont je ne peux pas modifier sa structure car fourni par l'externe. Dans mon fichier, je l'ai appelé Base. A partir de ce fichier source, je dois mettre à jour des fichiers Liste1 et Liste2. Par soucis de simplification, mon exemple se trouve dans un même classeur. Dans la réalité, j'ai plusieurs fichiers tous individuels.
Le problème est comment faire pour aller chercher les données sources et alimenter séparément liste 1 et liste 2 en fonction des critères en B2 (rouge, vert) et B3 (Jaune et violet).
En fonction de ces critères je dois ramener toutes les valeurs de la ligne correspondante.
Le fichier source est extrait mensuellement et varie en terme de nombre de lignes.
Il y aura autant de liste1 et liste2 que de mois dans l'année.
Les critères ne changent pas par contre.
Avec des formules, il y a le risque que les fichiers du mois précédent pointent sur le mauvais fichier source mis à jour. Il faudrait alors faire un copier valeurs des formules ?
Avec un macro qui alimente les fichiers automatiquement, puis nous n'avons plus qu'à archiver ces fichiers et on recommence le processus le mois suivants ?

Merci d'avance pour votre aide
Bonne soirée
 

Pièces jointes

  • Récupération données sources .xlsx
    16.5 KB · Affichages: 4
Solution
Bonjour Chris,

Merci pour votre complément d'information. Je ne suis pas assez aguerri pour utiliser PowerQuery. J'ai fait plusieurs tentative cette semaine sans succès. Cependant, à force de creuser, j'ai réussi à trouver une alternative avec la formule Filtre. Tous les fichiers se mettent à jour sur la base du fichier source. Ce n'est sûrement pas très optimal car les formules sont énormes mais cela peut être une bonne piste pour le début. il faudra juste remplacer les dates correspondant au mois manuellement pour aller taper dans le bon fichier source.
Voilà la formule de base qui m'a servi à développer ensuite.

=Filter(Base!A1:H50;Base!H1:H50="violet")

Bon week-end à vous

chris

XLDnaute Barbatruc
Bonjour

A faire de façon très simple par PowerQuery (intégré à Excel) en pointant sur le dossier où tu vas enregistrer les extraits.

L'extraction est en csv ?

Un exemple trop éloigné de la réalité ne permettra pas de t'aider concrètement : les titres des colonnes sont essentiels et les vrais critère de répartition sur les 12 onglets aussi...

Quel intérêt de lister des lignes sans infos dans les les champ à part la couleur ?
 

sum01

XLDnaute Occasionnel
Bonjour

A faire de façon très simple par PowerQuery (intégré à Excel) en pointant sur le dossier où tu vas enregistrer les extraits.

L'extraction est en csv ?

Un exemple trop éloigné de la réalité ne permettra pas de t'aider concrètement : les titres des colonnes sont essentiels et les vrais critère de répartition sur les 12 onglets aussi...

Quel intérêt de lister des lignes sans infos dans les les champ à part la couleur ?
Bonjour Chris,
L'extraction est au format xls.
Je comprends ton point. Mais je ne peux malheureusement pas utiliser les vraies données de production pour des questions de confidentialités entre autre. Aussi, je m'inspire de la réalité et ensuite j'adapte la solution. Mais sur le fond tu as tout à fait raison.
 

chris

XLDnaute Barbatruc
Re

On ne te demande pas les vraies données mais des titres réels et des critères autre que des couleurs dont je doute de la réalité. On ne peut modéliser du vent... et un modèle bidon ne t'aidera pas beaucoup si tu ne connais pas PowerQuery...

Sinon tu as le nom de l'outil : tu peux tenter de te lancer...
 

sum01

XLDnaute Occasionnel
Re

On ne te demande pas les vraies données mais des titres réels et des critères autre que des couleurs dont je doute de la réalité. On ne peut modéliser du vent... et un modèle bidon ne t'aidera pas beaucoup si tu ne connais pas PowerQuery...

Sinon tu as le nom de l'outil : tu peux tenter de te lancer...
ReSalut Chris,

les fichiers prod contiennent des groupes de noms de clients que j'ai remplacé par une couleur.
Le fichier source de prod fait plusieurs millier de lignes.
Les fichiers à mettre à jour sont au nombres de 40 avec de multiples onglets.
Les noms de champ en prod sont Pays, Rating, variations, perf,.... etc...
Essayer de coller à la réalité me paraît difficile même si je comprends ton argumentaire.
Je veux bien changer/remplacer les noms mais je ne veux pas non plus faire perdre du temps au gens si la demande est trop ambitieuse ou mal formulée.
Je préfère fermer la demande et je me débrouillerais autrement.
Merci quand même pour avoir pris le temps de me répondre.
Bonne soirée
 

chris

XLDnaute Barbatruc
Bonjour
Le fichier source de prod fait plusieurs millier de lignes
Cela n'est pas un problème pour PowerQuery

En fait il suffit de modéliser un classeur avec une table des n clients concernés dans ce classeur.
La requête utilise le fichier extrait : le plus simple est de qu'il soit placé dans un dossier dont le nom permet de savoir le mois concerné, soit c'est le nom du fichier qui permet cette discrimination.
Sinon on indique le chemin de l'extrait dans une cellule qui va donc, comme la table des clients, permettre de traiter les bonnes lignes du bon fichier.

C'est une requête assez simple qui gère automatiquement toutes les lignes quel que soit le nombre.

Une fois le modèle fait pour une liste, et testé, quelques lignes de VBA dans un autre classeur suffiront chaque mois pour
  • ouvrir le modèle
  • en changer la table des clients et si nécessaire le paramètre précisant la source du mois concerné
  • actualiser la requête
  • éventuellement délier le résultat de la source (c'est un choix)
  • enregistrer la liste sous un autre nom
 

sum01

XLDnaute Occasionnel
Bonjour

Cela n'est pas un problème pour PowerQuery

En fait il suffit de modéliser un classeur avec une table des n clients concernés dans ce classeur.
La requête utilise le fichier extrait : le plus simple est de qu'il soit placé dans un dossier dont le nom permet de savoir le mois concerné, soit c'est le nom du fichier qui permet cette discrimination.
Sinon on indique le chemin de l'extrait dans une cellule qui va donc, comme la table des clients, permettre de traiter les bonnes lignes du bon fichier.

C'est une requête assez simple qui gère automatiquement toutes les lignes quel que soit le nombre.

Une fois le modèle fait pour une liste, et testé, quelques lignes de VBA dans un autre classeur suffiront chaque mois pour
  • ouvrir le modèle
  • en changer la table des clients et si nécessaire le paramètre précisant la source du mois concerné
  • actualiser la requête
  • éventuellement délier le résultat de la source (c'est un choix)
  • enregistrer la liste sous un autre nom
 

sum01

XLDnaute Occasionnel
Bonjour Chris,

Merci pour votre complément d'information. Je ne suis pas assez aguerri pour utiliser PowerQuery. J'ai fait plusieurs tentative cette semaine sans succès. Cependant, à force de creuser, j'ai réussi à trouver une alternative avec la formule Filtre. Tous les fichiers se mettent à jour sur la base du fichier source. Ce n'est sûrement pas très optimal car les formules sont énormes mais cela peut être une bonne piste pour le début. il faudra juste remplacer les dates correspondant au mois manuellement pour aller taper dans le bon fichier source.
Voilà la formule de base qui m'a servi à développer ensuite.

=Filter(Base!A1:H50;Base!H1:H50="violet")

Bon week-end à vous
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 228
Membres
103 160
dernier inscrit
Torto