XL 2010 tri de plusieurs colonnes

yves57

XLDnaute Nouveau
bonjour à toutes et à tous
j'aimerai savoir si il est possible d'appeler la boite de dialogue tri par vba
j'ai un gros fichier et l'idée est de faire une sélection préalable de certaines données
Merci, à bientôt
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Yves,
Utilisez l'enregistreur de macro, il vous donne la structure qu'il vous faudra adapter à votre besoin.
Cela donne quelque chose du genre :
VB:
Sub Tri()
    Range("A1:B3").Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A3"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:B3")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 

yves57

XLDnaute Nouveau
bonsoir Sylvanu
Merci de votre réponse
j'ai essayé avec l'enregistreur de macro mais les données sont "figées" dans le code
j'ai 3 colonnes qui sont régulièrement triées, et avec la boite de dialogue, il y a une vrai facilité et rapidité de changer l'ordre des colonnes et le type de tri
c'est surement compliqué à mettre en œuvre mais ça me parait plus aisé à l'utilisation
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui mais vous pouvez fixer les plages comme vous l'entendez :
VB:
Sub Tri()
' Détermination des plages à trier'
    Set Plage1 = Range("A1:B4")
    Set Plage2 = Range("A1:A4")

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

Statistiques des forums

Discussions
312 304
Messages
2 087 050
Membres
103 441
dernier inscrit
MarioC