let
Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
#"En Colonne" = List.Transform(Table.ColumnNames(Source), each Table.Column(Source,_)),
#"Converti en table" = Table.FromList(#"En Colonne", Splitter.SplitByNothing(), {"Order"}, null, ExtraValues.Error),
#"Order développé" = Table.ExpandListColumn(#"Converti en table", "Order"),
#"Lignes filtrées" = Table.SelectRows(#"Order développé", each ([Order] <> null and [Order] <> ""))
in
#"Lignes filtrées"
merci pour votre supportbonjour,
Par power query également :
PowerQuery:let Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content], #"En Colonne" = List.Transform(Table.ColumnNames(Source), each Table.Column(Source,_)), #"Converti en table" = Table.FromList(#"En Colonne", Splitter.SplitByNothing(), {"Order"}, null, ExtraValues.Error), #"Order développé" = Table.ExpandListColumn(#"Converti en table", "Order"), #"Lignes filtrées" = Table.SelectRows(#"Order développé", each ([Order] <> null and [Order] <> "")) in #"Lignes filtrées"
Je n'ai pas inclus le noms des colonnes car j'ai pensé qu'ils n'étaient là (hors tableau résultat) que pour démonstration, mais ça peut se corriger rapidement.
[oops]Salut cousin [/oops]
Merci beaucoupbonjour,
Par power query également :
PowerQuery:let Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content], #"En Colonne" = List.Transform(Table.ColumnNames(Source), each Table.Column(Source,_)), #"Converti en table" = Table.FromList(#"En Colonne", Splitter.SplitByNothing(), {"Order"}, null, ExtraValues.Error), #"Order développé" = Table.ExpandListColumn(#"Converti en table", "Order"), #"Lignes filtrées" = Table.SelectRows(#"Order développé", each ([Order] <> null and [Order] <> "")) in #"Lignes filtrées"
Je n'ai pas inclus le noms des colonnes car j'ai pensé qu'ils n'étaient là (hors tableau résultat) que pour démonstration, mais ça peut se corriger rapidement.
[oops]Salut cousin [/oops]
Désole mais est-ce que c'est possible avec des formules ?
Sub Classer()
Dim c As Range, col As Range, h&
Application.ScreenUpdating = False
With [Tableau2].ListObject
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete xlUp
Set c = .Range(2, 1)
End With
With [Tableau1].ListObject.Range
.ListObject.Unlist 'tableau non structuré
For Each col In .Columns
col.Sort col, xlAscending, Header:=xlYes
h = Application.CountA(col) - 1
If h Then
col.Offset(1).Resize(h).Copy c
Set c = c.Offset(h)
End If
Next
.Parent.ListObjects.Add(xlSrcRange, .Cells, , xlYes).Name = "Tableau1" 'tableau structuré
End With
End Sub