Bonjour,

Sur une feuille j'ai un tableau de 9 colonnes que je voulais trier sur base de
de la première colonne qui est de type Date lles autres colonnes sont de type
numérique

Je suis partis du code provenant de l'enregistrement d'une macro que j'ai adapté et qui fonctionne correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub TrierPlage()
 
    Dim Ws As Worksheet, MaPlage As Range, PlageTri As Range
    Dim DerLgn As Byte
 
    '*** Initialiser
    Set Ws = Worksheets("CrsDevises")
    DerLgn = Ws.[B6].End(xlDown).Row
    Set MaPlage = Ws.Range("B6:J" & DerLgn)
    Set PlageTri = Ws.Range("B6:B" & DerLgn)
 
    '*** Trier la plage
    Ws.Sort.SortFields.Clear
    Ws.Sort.SortFields.Add Key:=PlageTri, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 
    With Ws.Sort
        .SetRange MaPlage
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
    '*** Libère mémoire
    Set Ws = Nothing
    Set MaPlage = Nothing
    Set PlageTri = Nothing
 
End Sub
En fouinant dans l'aide en ligne et sur le forum j'ai un autre code que j'ai testé sur une autre plage de données de même structure et qui fonctionne également correctement

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Test_Trier()
 
    Dim Ws As Worksheet, MaPlage As Range, PlageTri As Range
    Dim DerLgn  As Byte
 
    '*** Initialiser
    Set Ws = Worksheets("CrsDevises")
    DerLgn = Ws.[A42].End(xlDown).Row
 
    Set MaPlage = Ws.Range("A42:J" & DerLgn)
 
    '*** Colonne données < Dates >
    Set PlageTri = Ws.Range("A42:A" & DerLgn)
 
    '*** Trier la plage
    MaPlage.Sort PlageTri, xlAscending
 
    '*** Libère mémoire
    Set Ws = Nothing
    Set MaPlage = Nothing
    Set PlageTri = Nothing
 
End Sub
La question que je me pose quel est le bon code a utiliser

Merci d'avance de vos conseils judicieux et retours d'expérience

Bonne journée