Bonjour à tous,
Une autre proposition Power Query avec une fonction personnalisée.
Cdlt.
(FullFileName as text)=>
let
Source = Csv.Document(File.Contents(FullFileName),[Delimiter=",", Columns=4, Encoding=1252, QuoteStyle=QuoteStyle.None]),
TrimmedText = Table.TransformColumns(Source,{{"Column1", Text.Trim, type text}, {"Column2", Text.Trim, type text}}),
AddedCustom.1 = Table.AddColumn(TrimmedText, "Custom.1", each if [Column1] = "MACHINE" then [Column2] else null),
AddedCustom2 = Table.AddColumn(AddedCustom.1, "Custom.2", each if [Column1] = "DATE" then [Column2] else null),
FilledDown = Table.FillDown(AddedCustom2,{"Custom.1", "Custom.2"}),
RemovedTopRows = Table.Skip(FilledDown,7),
PromotedHeaders = Table.PromoteHeaders(RemovedTopRows, [PromoteAllScalars=true]),
RenamedColumns = Table.RenameColumns(PromotedHeaders,{{"MC#01", "MACHINE"}, {"30-01-2021", "DATE"}, {"MONTANT ", "MONTANT"}, {"QUANTITE/No ", "QUANTITE/No"}}),
ReorderedColumns = Table.ReorderColumns(RenamedColumns,{"MACHINE", "DATE", "ENREGISTREMENT", "DESIGNATION", "QUANTITE/No", "MONTANT"}),
ChangedType.1 = Table.TransformColumnTypes(ReorderedColumns,{{"QUANTITE/No", Int64.Type},{"DATE",type date}}),
ChangedType.2 = Table.TransformColumnTypes(ChangedType.1, {{"MONTANT", Currency.Type}}, "en-US")
in
ChangedType.2