1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
'------------------------------------------------------------------------------------------
'trie
'------------------------------------------------------------------------------------------
Sub TriVertical()
Dim col As Integer
Set rng = Sheets("Trie").Range(Cells(1, 1), Cells(330, x))
RowSort (rng), TextAsValue:=xlSortTextAsNumbers ', Order:=xlDescending ' , Header:=False
End Sub
Sub RowSort(DataTable As Range, Optional Order As Byte = xlAscending, Optional Header As Boolean = True, Optional TextAsValue As Byte = xlSortNormal)
' DataTable de type Range, doit contenir l'adresse d'au moins une cellule
' [Order] Ordre de tri par défaut xlAscending
' [Header] La table contient ou nom des étiquettes de lignes (1ère colonne) par défaut xlYes
' [TextAsValue] Permet de trier une valeur numérique ressemblant à un nombre comme tel. Par défaut xlSortNormal
' Le tri ne se fait que sur une seule ligne
Dim KeyRow As Range, Table As Range: Set Table = DataTable
With Table
If .Count = 1 Then Set Table = .CurrentRegion
End With
' *** Tri ***
With Table
Set KeyRow = .Offset(0, Abs(Header)).Resize(1, .Columns.Count - Abs(Header))
.Offset(0, Abs(Header)).Resize(, Table.Columns.Count - Abs(Header)).Sort _
Key1:=KeyRow, Order1:=Order, DataOption1:=TextAsValue, _
Header:=xlYes + Abs(Header = False), OrderCustom:=1, MatchCase:=False, Orientation:=xlSortRows
End With
End Sub |
Partager