Autres Excel 2007: Rang par classe dans une même colonne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kkamadou

XLDnaute Junior
Bonsoir le Forum.
J'ai une base de données comportant les notes des élèves du CP1 au CM2.
dans la colonne D se trouve les classe, les Moyennes dans la colonne Z et les rang dans la colonne AA
Je voudrais avoir une formule pour faire le rang de chaque classe dans la même colonne AA, c'est-à-dire
sur les 47 élèves, il y a 6 élèves de CP1, 9 élèves de CP2, 10 élèves de CE1, 11 élèves de CE2, 5 élèves de CM1, 6 élèves de CM2
Je veux faire le rang en fonction de la classe si possible.
Voir la base de donnée des le fichier "note eleve rang" joint
Merci de me sauver
 

Pièces jointes

Solution
Bonsoir sylvanu,

Cette macro évènementielle utilise la formule de mon post #2 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig&
Application.ScreenUpdating = False
Application.EnableEvents = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
derlig = Cells(Rows.Count, 1).End(xlUp).Row
If derlig < 4 Then Exit Sub 'sécurité
With Rows("4:" & derlig)
    .Sort .Columns(4), Header:=xlNo 'tri sur les classes
    .Columns(27) = "=RANK(Z4,OFFSET(Z$4,MATCH(D4,D:D,0)-4,,COUNTIF(D:D,D4)))"
    .Columns(27) = .Columns(27).Value 'supprime les formules
    .Sort .Columns(2), xlAscending, Header:=xlNo 'tri alphabétique sur les noms des élèves
End With
Application.EnableEvents = True
End Sub
Elle se déclenche...
C'est bien mais la liste sera par ordre alphabétique donc les classes ne seront pas regroupées.
une autre solution serait la bienvenue
Bonjour kkamadou,

Formule en AA4 à tirer vers le bas :
Code:
=RANG(Z4;DECALER(Z$4;EQUIV(D4;D:D;0)-4;;NB.SI(D:D;D4)))
Cette solution suppose que les lignes d'une même classe soient regroupées (jointives).

A+
 

Pièces jointes

Bonsoir sylvanu,

Cette macro évènementielle utilise la formule de mon post #2 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig&
Application.ScreenUpdating = False
Application.EnableEvents = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
derlig = Cells(Rows.Count, 1).End(xlUp).Row
If derlig < 4 Then Exit Sub 'sécurité
With Rows("4:" & derlig)
    .Sort .Columns(4), Header:=xlNo 'tri sur les classes
    .Columns(27) = "=RANK(Z4,OFFSET(Z$4,MATCH(D4,D:D,0)-4,,COUNTIF(D:D,D4)))"
    .Columns(27) = .Columns(27).Value 'supprime les formules
    .Sort .Columns(2), xlAscending, Header:=xlNo 'tri alphabétique sur les noms des élèves
End With
Application.EnableEvents = True
End Sub
Elle se déclenche automatiquement quand on modifie ou valide une cellule quelconque de la feuille.

Le tableau est trié 2 fois, avant et après l'entrée des formules.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
Membre supprimé 341069
M
Réponses
5
Affichages
474
Réponses
9
Affichages
646
Réponses
3
Affichages
485
Retour