Classement sur deux colonnes

Bonjour à tous,

J'ai des points d'examens qui permettent d'obtenir grâce à des formules un % et une mention (ajourné, satisfaction,...).

J'ai par exemple

Dist 72,70

Aj 53,60

Dist 77,5

J'aurais voulu classer d'abord par mention (ajourné, satisfaction, distinction...) et ensuite pas pourcentage.

Il faut que tous les ajournés se trouvent en bas du classement (il ne peut pas y avoir un ajourné qui soit au-dessus d'une distinction par exemple).

Pour cela, j'utilisais ce code :

Sub calcul()

Dim Lign As Long
Dim Fom As Worksheet
Set Fom = Sheets("ordre de mérites") 'on détermine la feuille de travail
'Range("alphabétique").Copy Range("délibé") 'on copie les données
'Range("délibec").Sort Key1:=Range("AD11"), Order1:=xlAscending 'premier tri, pour mettre les Aj en fin de liste
    With Fom 'sur la feuille de travail
        Lign = Application.Match("Aj", .Columns(24), 0) 'on cherche la première ligne "Aj"
        .Range("A12:BD" & Lign - 1).Sort Key1:=.Range("L12"), Order1:=xlDescending, Key2:=.Range( _
            "I12"), Order2:=xlDescending, Header:=xlNo
                'on trie les non-ajournés
        .Range("A" & Lign & ":BD" & .[A65000].End(xlUp).Row).Sort Key1:=.Range("L" & Lign), Order1:=xlDescending, _
            Key2:=.Range("I" & Lign), Order2:=xlDescending, Header:=xlNo
                'on trie les ajournés
    End With
End Sub

La macro "calcul" reprend le code ci-dessus.

J'ai une erreur ici :

incompatibilité de type

Je mets en attaché un fichier, cela sera plus simple.

J'aimerais donc classer la colonne AD (en mettant les aj en dessous) et ensuite par AL (%)

Je vous remercie d'avance pour votre aide.

beegeezzz

13ma1-fofo.rar (66.07 Ko)

Bonsoir

Pour la 1ère question la variable "délibec" est sans accent (une habitude à prendre (évite ce genre d'erreur) toutes les variables sans accent)

Voir le programme joint

Bonjour,

Ta réponse est parfaite, je te remercie mille fois pour ton aide.

Très bonne journée.

beegees

-- 29 Juin 2011, 14:56 --

Banzai64 a écrit :

Bonsoir

Pour la 1ère question la variable "délibec" est sans accent (une habitude à prendre (évite ce genre d'erreur) toutes les variables sans accent)

Voir le programme joint

Rebonjour,

Je me permets de réouvrir ce poste car j'ai fait une petite erreur.

En fait, il faut classer par pourcentage (%) AK11 et non pas mention (AC11).

J'ai donc changé la macro comme ceci :

Range("delibec").Resize(, Range("delibec").Columns.Count + 4).Sort _
                Key1:=Range("AR11"), Order1:=xlDescending, _
                Key2:=Range("AQ11"), Order2:=xlDescending, _

la première clé de tri est le % et la seconde la mention.

Comme cela, des ajournés viennent se mettre avant des satisfactions.

Aurais-tu une idée comment je peux résoudre cela stp ?

Je joins le nouveau fichier.

Merci

beegees

14ma1-fofo-2.xlsm (108.15 Ko)
Rechercher des sujets similaires à "classement deux colonnes"