XL 2016 Vba trier plusieurs colonnes d'une plage

KTM

XLDnaute Impliqué
Bonsoir chers tous
Je voudrais trier quatre colonnes par ordre croissant ( B,E,G,I) .
Dans mon fichier j'ai conçu un code mais quelque chose cloche.
Aidez moi à corriger Svp.
 

KTM

XLDnaute Impliqué
Re

@KTM
Qu'est-ce tu entends par

Tu peux donner plus détails.
Merci
Mon code renvoie une erreur
VB:
Sub tri()
Application.ScreenUpdating = False
Dim Rng As Range
Set Rng = Range("B3:M" & [B65000].End(xlUp).Row)
Rng.Sort key1:=Range("B3"), order1:=xlAscending, key2:=Range("E3"), order2:=xlAscending, _
key3:=Range("G3"), order3:=xlAscending, key4:=Range("I3"), order4:=xlAscending
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    22.6 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
Re

Oui, cela semble normal si on regarde que nous dit VBA
sorting.png
Il n'y a de Key4

Par contre en prenant, cette syntaxe plus d'erreur mais est-ce que le tri obtenu est ce que tu cherches ?
Code:
Sub tri_bis()
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("B3:B78") _
        , SortOn:=xlSortOnValues, Order:=1, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("E3:E78") _
        , SortOn:=xlSortOnValues, Order:=1, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("G3:G78") _
        , SortOn:=xlSortOnValues, Order:=1, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("I3:I78") _
        , SortOn:=xlSortOnValues, Order:=1, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("B2:M78")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je voudrais trier quatre colonnes par ordre croissant ( B,E,G,I) .
Ta question est bizarre car quand tu vas trier une colonne, ça va changer l'ordre des lignes de cette colonne, mais aussi des autres colonnes.

Donc comme l'a dit Staple1600, il faudrait donner quelques précisions sur ce que tu veux exactement obtenir comme résultat. ;)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 369
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang