Bonsoir à tous,

J'ai fait une petite macro qui permet de générer un tri sur une plage donnée sur plusieurs colonnes.

Ca fonctionne assez bien si je prend les première colonnes de la sélection.
Hélas quand je choisi des colonne un peu plus loin dans le tableau, j'ai besoin, après l'exécution de la macro, d'aller a la main valider le tri.
Mon objectif etant de lancer cette fonction en boucle j'ai absolument besoin de passer cette validation "à la main".
Auriez vous une idée ?

Voici mon code :
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
Sub lanceLeTri(debut As Integer, fin As Integer)
    Dim ligneDebut As Integer, ligneFin As Integer
    ligneDebut = Selection.Row
    ligneFin = Selection.Rows.Count + Selection.Row - 1
 
    ActiveSheet.Sort.SortFields.Clear
    Debug.Print debut, fin
    'boucle sur chaque colonne a trier
    Dim i As Integer
    For i = debut To fin
        Debug.Print (i)
        ActiveSheet.Sort.SortFields.Add2 Key:=Range(Cells(ligneDebut, i), Cells(ligneFin, i)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    Next i
 
 
    With ActiveSheet.Sort
        .SetRange Range(Cells(debut, Selection.Column), Cells(fin, Selection.Column + Selection.Columns.Count - 1))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub