Concaténer des tableaux

Bonjour,

J'ai un petit soucis, et je n'arrive pas à le résoudre de manière Simple...

J'ai un fichier avec 9 onglets correspondants à une agence différente. Ces 9 onglets/feuille de calcul ont exactement le même tableau.

Ce tableau sera a remplir par chacune des agences.

J'ai un onglet Données, dans lequel, je renseigne les données de mes différentes listes déroulante, et dans lequel j'ai une fonction filtre qui me récupère les lignes dont j'ai besoin pour mon traitement en fonction du mois et de la date voulu.

J'arrive donc à récupérer et traiter les données en fonction des agences, mais, je souhaiterais maintenant faire un traitement global pour toutes les agences.

L'idée serait alors d'avoir un nouvel onglet dans lequel je puisse "combiner" "concaténer" tous mes tableaux.

Je ne peux pas passer par des macros/VBA car ce fichier sera utiliser via le web, ce qui n'est pas compatible.

Auriez-vous une idée pour solutionner ce besoin?

Bonjour à tous,

Avec powerquery

tu remplis une lignesdans un tableau et tu fais actualiser dans le tableau vert de synthese

Bonjour,

@ DjiDji, je pense que le fichier joint concerne une autre question (d'Exelpas sur CCM)

Bonne journée

Merci cousinhub !

Le bon fichier !

Avec de noms pareils !! Ça serait pas des fichiers islandais ?

Re-,

En effet, manque la lave et la fumée...

Sinon, pour récupérer les données des Tableaux Structurés (TS) des différentes agences (excellente idée d'avoir mis sous cette forme de TS), on peut utiliser également une version un peu différente :

let
    Source = Excel.CurrentWorkbook(),
    //Permet de récupérer la liste des Tableaux Stucturés, entre autres
    Filtre = Table.SelectRows(Source, each Text.StartsWith([Name], "_")),
    //Filtre sur les TS dont les noms commencent par un _ (underscore)
    Combine = Table.Combine(Filtre[Content]),
    //Combine ces TS
    SupprVides = Table.SelectRows(Combine, each ([Date de Reception] <> null)),
    //Suppression des lignes vides
    TypeDate = Table.TransformColumnTypes(SupprVides,{{"Date de Reception", type date}, {"Date réponse", type date}})
    //Typage des colonnes de dates
in
    TypeDate

Bonne fin d'apm

:D

C'est parce que le fichier je l'ai recrée plusieurs fois, bout d'un moment, j'avais plus d'inspi pour différencier les versions... ^^

Alors, par contre, est-ce que cela fonctionnera sur le web?

Parce que le but, c'est que ce fichier soit partagé par SharePoint, pour que chacune des agences puisse l'alimenter. J'ai vu qu'en passant par powerquery (que je ne connais pas du tout) il fallait renseigner une source, dans ton exemple : "D:\Téléchargements\Fichiers Excel\omsyhf-leirughfkleisbvdufygoij.xlsx" , cela ne poserait-il pas problème?

Bonjour Miri,

PowerQuery est directement implémentable dans SharePoint, bien sur, il faut voir avec les admin pour les droits d'accès et d'autorisations.

Cdt

Merci à tous!!!!

J'ai appris une nouvelle utilisation sur Excel, je ne connaissais pas Power Query, j'ai pas trop compris ce que vous avez fait, mais j'ai tout repris et bidouiller un peu, parce que je ne sais pas où il fallait écrire le code entre

let ....... in

Parce qu'effectivement, j'ai des lignes vides inutiles que j'aimerais bien supprimer automatiquement.

J'ai masqué les colonne et les feuilles que les agents ne devront pas touché.

Bonjour,

Dans le fichier joint, j'ai mis la requête dont le code figure dans ma précédente réponse.

Pour voir les étapes, Alt + F12 pour ouvrir l'éditeur PQ, et à droite, les étapes. Dans la barre de formule de l'éditeur, les lignes de code.

Pour voir le code en entier, cliquer sur "Éditeur avancé" dans l'éditeur.

Bonne découverte de PQ (sous ce lien, quelques exemples et tuto pour te familiariser un peu)

Mais c'est génial ça!!!!!!

Merci, du coup je m'en vais modifier mon fichier de ce pas...

Merciiiiiiiiiiiii!!!

Bon, en fait, j'ai encore un petit soucis.. tout petit tout minime... (promis)

let
    Source = Excel.CurrentWorkbook(),
    Filtre = Table.SelectRows(Source, each (Text.StartsWith([Name],"_") AND [Name]<>"_SYNTHESE"),
    Combine = Table.Combine(Filtre[Content]),
    SupprVides = Table.SelectRows(Combine, each ([Date de Reception]<>null)),
    TypeDate = Table.TransformColumnTypes(SupprVides,{{"Date de Reception", type date},{"Date réponse", type date}})
in
    TypeDate

Sans suprise :

Filtre = Table.SelectRows(Source, each (Text.StartsWith([Name],"_") AND [Name]<>"_SYNTHESE"),

Ne fonctionne pas...

Le soucis si je n'enlève pas

AND [Name]<>"_SYNTHESE"),

C'est que le tableau s'incrémente, et je suis obligée de garder cette syntaxe pour ce tableau... car je traite les données dans INDICAT PERF et SUIVI RECLAM

Re-,

la bonne syntaxe :

= Table.SelectRows(Source, each Text.StartsWith([Name], "_") and [Name] <> "_SYNTHESE")

Dans le langage M (langage du code de PQ), il n'y a pas d'instructions entièrement écrites en majuscule. En général, ce sont des instructions sous forme de NomsPropres, ou entièrement en minuscule (each, or, and, try....)

Seuls les noms des étapes sont libres. Par défaut, lorsque tu agis dans l'éditeur via les différents boutons, PQ nomme ces étapes automatiquement. Tu peux les renommer pour plus de visibilité dans le code. PQ est très sensible à la casse, et contrairement au VBA, ne corrige pas automatiquement (ce qui est dommage...)

Tu peux voir les instructions dans cette bible

J'avais repris le code de cousin hub en ajoutant une variable qui etait le nom du fichier. On peut surement l'améliorer, mais mon IA est fatiguée ! depuis ce matin que je lui pose des questions power query !

Rechercher des sujets similaires à "concatener tableaux"