Trier tableau ou plage cellules

Bonjour,

Quelqu'un peut-il m'aider à créer une macro permettant de trier un tableau ou une plage de cellules ? Où trouver le détail de la fonction Sort ?

D'avance merci.

Bonsoir bebar26

image

bonjour,

pour quelque chose simple et que 2 colonnes à trier (B & D) (vieux style)

Sub sorteren()
     With Sheets("feuil1").ListObjects("Tab_1").Range
          .Sort .Range("B1"), xlAscending, , .Range("D1"), xlDescending, Header:=xlYes
     End With
End Sub

En réponse à BrunoM45,

ça, j'ai déjà fait, j'ai obtenu le code, mais je ne le comprends pas.

Merci quand même.

En réponse à BsAIv,

Je vais tester votre proposition.

Merci.

Bonjour BsAIv

Que représente Tab1 ? Les colonnes ABCD, je suppose ?

Re

Dans l'exemple de BsAlv qui se lance comme à son habitude dans l'inconnue la plus totale
Tab1 représente un Tableau Structuré nommé ainsi

bonjour,

C'était une réponse dans l'inconnue sur un question dans l'inconnu et ma réponse est pour 95% egale au suivant. La seule différence, il s'agit ici d'une plage au lieu d'un tableau. (A mon avis, ma réponse était plus à point que le votre)

Un point important, supposons que la plage ne commence pas à la premiere colonne, par exemplee AA3 au lieu de A3, ce .range("C1") reste le même pour indiquer que c'est la 3ième colonne (relatif) dans cette plage

Avec Currentregion, la 2ième ligne doit rester vide !!! Au lieu de cela, vous pouvez aussi utiliser With Sheets("trier").Range("A3:C40")

Avec cette méthode à l'ancienne, on n'a que 2 clefs pour sorter

Sub TriCaDec()
     '
     ' TriCaDec Macro
     '
     'à l'ancienne
     With Sheets("trier").Range("A3").CurrentRegion     'la plage autour A3
          .Sort .Range("C1"), xlDescending, Header:=True     'dans cette plage sort la 3ième colonne de grand à petit avec des entêtes
     End With

     Exit Sub     'arreter ici

     Range("A3").Select
     ActiveWorkbook.Worksheets("TRIER").Sort.SortFields.Clear
     ActiveWorkbook.Worksheets("TRIER").Sort.SortFields.Add Key:=Range("C4:C40"), _
                                                            SortOn:=xlSortOnValues, Order:=xlDescending, _
                                                            DataOption:=xlSortNormal
     With ActiveWorkbook.Worksheets("TRIER").Sort
          .SetRange Range("A3:C40")
          .Header = xlYes
          .MatchCase = False
          .Orientation = xlTopToBottom
          .SortMethod = xlPinYin
          .Apply
     End With
End Sub
Rechercher des sujets similaires à "trier tableau plage"