Effectuer un tri ascendant dynamique

Bonjour à tous!

Je cherche à coder de manière dynamique un tri.

Je disposerai toujours de 7 colonnes, mais le nombre de ligne est variable.

Je souhaite sélectionner mes 7 colonnes puis effectuer un tri selon la colonne C par ordre ascendant, mes colonnes diposent de titres.

J'ai utilisé l'enregistreur pour avoir la base du code, je cherche maintenant à rendre ce bout de code dynamique. Je sais que je dois utiliser une variable Lastrow qui regarde la dernière ligne écrire (en se référant à la colonne B), en revanche je pêche quant à l'adaptation dans mon code. Je vous laisse juger :

Sub TriIRC()

Lastrow = .Cells(Rows.Count, "B").End(xlUp).Row

Columns("A:G").Select
    ActiveWorkbook.Worksheets("ConsoSheet").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("ConsoSheet").Sort.SortFields.Add Key:=Range( _
        "C2:C" & Lastrow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("ConsoSheet").Sort
        .SetRange Range("A1:G1" & Lastrow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

Avec le code précédent je me retrouve avec une compile error, invalid reference.

Merci de votre coup de main !!

Bonjour,

Essaie plutôt ceci :

Sub TriIRC()
    Dim Lastrow As Integer
    With Worksheets("Sheet1")
        Lastrow = .Cells(Rows.Count, 2).End(xlUp).Row
        .Range("A1:G" & Lastrow).Sort key1:=.Range("C1"), order1:=xlAscending, Header:=xlYes
    End With
End Sub

[L'enregistreur ne connait plus la méthode Sort de l'objet Range...]

Cordialement.

Je l'ignorais!

Merci tout marche bien.

Bonne journée!!

Rechercher des sujets similaires à "effectuer tri ascendant dynamique"