Bonjour.

Je ne suis pas familier des méthodes Sort.
Je procède d'abord avec l'enregistreur de macros :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A5:A504")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Mais je veux définir ma zone de tri en fonction de diverses variables.
Dans un cas simple, Excel accepte :

.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SetRange Range(Worksheets("Courbes vraies").Cells(4 + 1, 1),       Worksheets("Courbes vraies").Cells(4 + nb_de_coûts, 1))
mais il ne veut pas de références plus compliquées du style


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 .SetRange Range(Worksheets("Courbes vraies").Range(Worksheets("Courbes vraies").Cells(premier_scénario(classe) * 5, classe * 2 + 1), _
            Worksheets("Courbes vraies").Cells(dernier_scénario(classe) * 5 + 4, classe * 2 + 1)))
j'aimerais bien comprendre pourquoi

Je ne peux pas faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set zone_de_tri = Worksheets("Courbes vraies").Range(Worksheets("Courbes vraies").Cells(premier_scénario(classe) * 5, classe * 2 + 1), _
            Worksheets("Courbes vraies").Cells(dernier_scénario(classe) * 5 + 4, classe * 2 + 1))
et ni d'ailleurs le plus simple zone_de_tri.Sort qui me paraîtrait bien plus simple, direct et transparent que ce que me propose l'enregistreur de macros...

Quelqu'un peut-il aider un pauvre pèlerin ??
Merci !

Patrick