Automatiser un tri

Bonjour à tous,

Je fais appel à vous cette fois ci pour vous demandez si il est possible sur vba de faire un tri d'une plage quelque soit sa taille?

A l'aide de l'enregistreur de macro, j'ai tenté de faire ceci mais on m'indique une erreur de compilation:

Sub Macro1()
'
' Macro1 Macro
'

'

Dim l, c As Integer
Dim rg As Range

l = Worksheets(1).Cells(Rows.Count, 3).End(xlUp).Row
c = Worksheets(1).Cells(2, Columns.Count).End(xlToLeft).Column
Set rg = Worksheets(1).Range(Cells(2, 3), Cells(l, c))

    rg.Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=rg, _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange rg
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
       .Apply
    End With

End Sub

Il s'agit d'un tri par rapport aux valeurs de la colonne D.

Merci beaucoup de votre aide.

27test.xlsm (18.73 Ko)

Salut,

Remplace tout ton code par la ligne suivante :

Sheets("Feuil1").Range("C2").CurrentRegion.Sort Key1:=Range("D2"), Header:=xlYes

Merci beaucoup cela fonctionne à la perfection

En fait il permet de trier la feuille en entière si j'ai bien compris?

la fonction CurrentRegion permet de sélectionner toute la plage des cellules tant que celle ci ne rencontre pas une colonne ou une ligne entières vides.

pour t'en convaincre, insère le code suivant dans la macro :

Sheets("Feuil1").Range("C2").CurrentRegion.Select

et vois la plage sélectionnée.

Ici, Sheets("Feuil1"), signifie que la feuille dans laquelle aura lieu l'opération sera la Feuil1, cela ne veut pas dire que l'on fera le tri sur toute la feuille.

Une macro peut être lancée à partir d'une feuille active mais faire des opérations sur d'autres feuilles, d'ou l'utilité de préciser la feuille sur laquelle la macro doit travailler.

Voilà, j'espère que c'est plus clair

Oui merci à toi pour ces explications, j'y vois beaucoup plus claire

Rechercher des sujets similaires à "automatiser tri"