Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Pièces jointes

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

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
602
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…