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

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

  • note eleve rang.xlsm
    29.1 KB · Affichages: 15
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...

job75

XLDnaute Barbatruc
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

  • note eleve rang(1).xlsm
    26.1 KB · Affichages: 9

kkamadou

XLDnaute Junior
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

  • note eleve rang.xlsm
    29.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kkamadou, Job,
Un essai en PJ par macro.
J'ai réutilisé la fonction de Job. Un appui sur le bouton RANG permet de faire le classement par niveau.
Comme les macros existaient j'ai aussi rajouté un tri par niveau et un tri alphabétique.
 

Pièces jointes

  • note eleve rang (1).xlsm
    32.6 KB · Affichages: 10

job75

XLDnaute Barbatruc
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

  • note eleve rang(2).xlsm
    29.6 KB · Affichages: 8

Discussions similaires

Réponses
9
Affichages
1 K
Membre supprimé 341069
M
Réponses
18
Affichages
663