Bonjour à tousBonjour
J'ai fais un tableau de relevé de notes et j'aimerais extraire la liste des admis dans la feuille"liste des admis"
Pouvez vous m'aider ?
Vos formules sont courtes mais ça marche.Bonjour chacun,
Re formules Agregat avec classement sur RANG.
Voir la formule et les formats personnalisés de la (des) colonne(s) RANG pour afficher les "er" et "ième" et qu'ainsi la (les) colonne(s) RANG soit (ent) Numérique(s) et non plus du textuelle(s)
P.S. c'est une mauvaise idée d'appeler un nom de colonne par un nom de formule (RANG).
Cordialement
J'avoue n'avoir point songé car je m'y connais un peu. MerciBonjour à tous,
Un exemple par TCD ou formules
JHA
BonsoirBonjour à tous
S'il n'y a pas d'allergie au vba, une proposition avec mise à jour par la sélection de la feuille "liste des admis"
Le code est dans la feuille "liste des admis"
**PJ modifiée
Bonsoir
Bref! Comment avoir le n°mle, le prénom, le sexe, la moyenne et la mention dans la liste des admis. Merci
Certainement que j'ai mal regardé. Je vous ferais un retour demain. MerciJe ne comprends pas la question, La PJ que j'ai mis en ligne ne fait pas ????
Ouppss!!
La pj ne retient que les admis(es)
Re..Certainement que j'ai mal regardé. Je vous ferais un retour demain. Merci
Option Explicit
Sub CpyAdmis()
If ActiveSheet.Name <> "Relevé de notes" Then Exit Sub
Dim sh As Worksheet, n1&, n2&, i&, j&, m%, k%
With ActiveSheet.ListObjects("Tableau1")
If .DataBodyRange Is Nothing Then Exit Sub
n1 = .ListRows.Count: If n1 = 0 Then Exit Sub
m = .ListColumns.Count: k = m - 3
End With
Set sh = Worksheets("Liste des admis")
j = 5: Application.ScreenUpdating = 0
n2 = sh.Cells(Rows.Count, 1).End(3).Row
If n2 > 4 Then sh.Range("A5:H" & n2).ClearContents
For i = 8 To n1 + 7
If Cells(i, m) = "Admis(e)" Then
Cells(i, 1).Resize(, 4).Copy: sh.Cells(j, 1).PasteSpecial -4163
Cells(i, k).Resize(, 4).Copy: sh.Cells(j, 5).PasteSpecial -4163
j = j + 1
End If
Next i
Application.CutCopyMode = 0: sh.Select: [A1].Select
End Sub
formule en G5 :Aussi celle située dans la cellule "G18" semble plus complexe. J'aimerais comprendre.
=SIERREUR(AGREGAT(15;6;(Tableau1[RANG])/(Tableau1[Mention]="Admis(e)");LIGNE()-4);0)
Merci nombreuxBonjour,
formule en G5 :
La fonction agregat permet d'appliquer certaines fonctions statistiques à un tableau qui lui est passé en paramètre (le premier paramètre, un peu comme SOUS.TOTAL) tout en ignorant certain éléments dans son calcul interne (lignes non visibles, filtrées, erreur, certaines fonction etc...).
Ici on utilise la faculté de la fonction agregat d'ignorer les les erreurs ( deuxième paramètre ).
Puis on lui passe une fonction qui va créer un tableau interne avec des VRAI et des erreurs (#DIV/0!") en réponse au test ((Tableau1[Mention]="Admis(e)")) et dont seuls les éléments sans erreur seront retournés..
La fonction petite.valeur (premier paramètre =15) retournera le ligne()-4 ème élément VRAI
Ligne()-4 car le tableau est en ligne 5 et qu'on veut sur chaque ligne les éléments de 1 à n
cordialement