Tri avec customOrder

Bonjour à tous,

Voila mon petit soucis. Je voudrais ajouter un tri personnalisé sur la key1 mais je ne trouve pas la bonne syntaxe.

    Worksheets(1).Sort.SortFields.Clear
    Range("A2:E194").Sort Key1:=Range("C2"), Key2:=Range("B2"), Key2:=Range("A2"), Header:=xlYes, _
    Order1:=xlDescending, Order2:=xlAscending

Est-ce possible avec cette forme d'écriture? Au pire je prendrais l'ensemble de ligne que donne l'enregistreur mais j'aime bien ce format simplifié.

Peut on imaginer faire quelque chose comme ça?

    Worksheets(1).Sort.SortFields.Clear
    Range("A2:E194").Sort Key1:=Range("C2"), Key2:=Range("B2"), Key2:=Range("A2"), Header:=xlYes, _
    Order1:=xlDescending, CustomOrder:= "la liste de tri",  Order2:=xlAscending

Merci pour votre aide

bonjour,

 liste = "printemps,été,automne,hiver"
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("C1:C194") _
          , SortOn:=xlSortOnValues, Order:=xlAscending,  _
        , DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("B1:B194") _
          , SortOn:=xlSortOnValues, Order:=xlAscending,  _
        , DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A1:A194") _
          , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=CVar(liste) _
        , DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:E194")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Bonjour,

Je vous remercie pour votre réponse mais cela ne correspond pas à ma demande.

Je souhaiterais dans la mesure du possible garde mon code simplifié. A défaut si vraiment ce n'est pas possible je ferais en effet comme vous mettrais le code de l'enregistreur de macro.

je vous remercie pour votre temps.

Bonjour,

Regarde sous ce lien, peut-être une réponse?

Je vais regarder ça de plus prêt.

Merci pour votre réponse.

bonjour, avec ce customorder, je n'y arrive pas non plus. Ceci est pourtant aussi simple à appliquer.

Sub Sorter_PremièreFois()

     With ActiveWorkbook.Worksheets("Blad1")
          Set c = .Range("D4").CurrentRegion
          With .Sort.SortFields
               .Clear
               .Add2 Key:=c.Columns(3), CustomOrder:="printemps,été,automne,hiver"     'premier clef
               .Add2 Key:=c.Columns(2), Order:=xlDescending     '2ième clef
               .Add2 Key:=c.Columns(1)     '3ième clef
          End With
          With .Sort
               .SetRange c
               .Header = xlYes
               .Apply
          End With
     End With
End Sub

Bonjour,

Merci à tous les deux pour vos réponses.

Elles fonctionnent toute les deux.

Merci encore.

Rechercher des sujets similaires à "tri customorder"