Création macro pour mise en Forme

Bonjour

Je recois un fichier pdf qui après conversion en excel ne me permet pas de faire des rapprochement avec une autre base à partir du numéro de transport ou autre

Est il possible à partir du fichier ci d'obtenir le résultat ci dessous ? pour l'ensemble du fichier (ici une partie du fichier il fait environ 1000 lignes)

Merci d'avance

5darty-copie.xlsx (21.86 Ko)
image

Hello,

Une proposition, tu mets tes données dans le tableau structuré du premier onglet et ensuite tu as juste à aller sur le second et faire clic droit puis actualiser sur le tableau

@+

13darty-copie.xlsx (25.44 Ko)

Ca a l'air à première vu pas mal du tout mais est il possible de savoir comment tu arrives au produit final ?

Bonjour à tous !

Une proposition Power Query, basée sur la très inspirante requête de BAROUTE78 () :

let
    fnBD = (rec,deldeb,delfin)=> Text.BetweenDelimiters(Record.Field(rec,"Colonne1"),deldeb,delfin),
    fnRCNull = (NomTable as table) =>Table.SelectColumns(NomTable, List.Select(Table.ColumnNames(NomTable),each List.NonNullCount(Table.Column(NomTable,_))<>0)),
    Source = fnRCNull(Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content]),
    FilterNull = Table.SelectRows(Source, each ([Colonne1] <> null)),
    GroupBy = Table.Group(FilterNull, {"Colonne1"}, {{"rec", each [tbl=_, #"Transport n°"=fnBD(tbl{0},"Transport n°"," "), #"Référence donneur d'ordre"=fnBD(tbl{0},"Référence donneur d'ordre : "," Num"), Numéro LV=fnBD(tbl{0},"Numéros LV : ","#(lf)")] }}, 0 , (s,c)=> Number.From( Text.StartsWith(c[Colonne1],"Transport n°")))[[rec]],
    RecExpand = Table.ExpandRecordColumn(GroupBy, "rec", {"tbl", "Transport n°", "Référence donneur d'ordre", "Numéro LV"}),
    TblExpand = Table.ExpandTableColumn(RecExpand, "tbl", {"Colonne1", "Colonne10", "Colonne11", "Colonne6", "Colonne9"}, {"Produits", "Taux TVA", "Total HT", "Quantité", "Prix Unit. HT"}),
    Filter = Table.SelectRows(TblExpand, each ([Produits] = "Transport" or [Produits] = "Transport/RETOUR SAV"))
in
    Filter

La vélocité devrait (j'espère !) être au rendez-vous : moins d'étapes et surtout moins d'itérations successives.

Hello Choupez, JFL,

C'est une requête PowerQuery, tu verras les étapes successives sur la droite quand tu seras dans l'éditeur

image

@JFL, en tant qu'utilisateur aguerri de powerquery, plus d'étapes ne signifie pas tout le temps moins de vélocité

Je t'invite à tester cette ligne sur une centaine de colonne, peut être que je te convertirai à l'utilisation de Table.Profile !

fnRCNull = (NomTable as table) =>Table.SelectColumns(NomTable, List.Select(Table.ColumnNames(NomTable),each List.NonNullCount(Table.Column(NomTable,_))<>0))

Sur ce je vous souhaite une excellente journée

@+

Bonjour à tous de nouveau !

@JFL, en tant qu'utilisateur aguerri de powerquery, plus d'étapes ne signifie pas tout le temps moins de vélocité

Je t'invite à tester cette ligne sur une centaine de colonne, peut être que je te convertirai à l'utilisation de Table.Profile !

fnRCNull = (NomTable as table) =>Table.SelectColumns(NomTable, List.Select(Table.ColumnNames(NomTable),each List.NonNullCount(Table.Column(NomTable,_))<>0))

Cette fonction est une fonction de ma bibliothèque qui, il est vrai, n'intègre pas les dernières modes (j'ai vu effectivement récemment une ou deux vidéos utilisant cette approche). Cela étant, il m'arrive très très rarement de jouer avec des tables comportant des centaines de champs.

Bonjour

Merci pour ta réponse @BAROUTE78.

Je n'utilisais pas cette fonction par méconnaissance.

Du coup je vais pour l'appliquer sur d'autre travaux.

Merci et bonne journée

Hello,

Powerquery ouvre des horizons insoupçonnés

@+

Rechercher des sujets similaires à "creation macro mise forme"