Utilisation Sortfield pour trier du plus grand au plus petit

Bonjour à tous,

J'ai un soucis, je n'arrive pas à contrôler et utiliser la propriété sortfield:

Je crée un tableau avec un filtre d'entête (dont je ne connais pas la longeur)

Je veux trier la colonne H du plus grand au plus petit.

derlig = Worksheets("Analyse intermediaire").Cells(Rows.Count, 1).End(xlUp).Row

ActiveWorkbook.Worksheets("Analyse intermediaire").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Analyse intermediaire").Range("A1:H" & derlig).Sort Key:=Range("H1"), Order1:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom  '***

With ActiveWorkbook.Worksheets("Analyse intermediaire").Range("A1:H" & derlig).Sort
 .Header = xlYes
 .MatchCase = False
 .Orientation = xlTopToBottom
 .SortMethod = xlPinYin
 .Apply
End With

*** Me donne Erreur exécution 1004 ; erreur définie par l'application où par l’objet

ça fait quelques heures que je cherche et test des solutions, mon meilleurs résultat était : pas le résultat attendu, sans message d'erreur.

Est-ce que vous pouvez me donner un coup de main ?

Merci à vous,

J-C

bonjour,

tu mélanges l'objet sort et la méthode sort de l'objet range. Il faut utiliser ou l'un ou l'autre.

essaie ceci

 With Worksheets("Analyse intermediaire")
        derlig = Worksheets("Analyse intermediaire").Cells(Rows.Count, 1).End(xlUp).Row
        .Range("A1:H" & derlig).Sort Key1:=.Range("H1"), Order1:=xlDescending, Header:=xlYes
    End With

Merci !

Bonjour J-C, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim CL As Workbook
Dim O As Worksheet

Set CL = ThisWorkbook
Set O = CL.Worksheets("Analyse intermediaire")
derlig = O.Cells(Rows.Count, 1).End(xlUp).Row
O.Range("A1:H" & derlig).Sort Key1:=O.Range("H1"), Order1:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom  '***
End Sub

[Édition]

boujour l'Acide nos posts se sont croisés...

Rechercher des sujets similaires à "utilisation sortfield trier grand petit"