Bonjour,
Une solution ci-jointe qui permet, seulement en changeant le nom de l'onglet (le nom de la classe) de changer le contenu de la feuille. Le nom de l'onglet est récupéré par la fonction CELLULE() :
Code : Tout sélectionner
STXT(CELLULE("nomfichier");TROUVE("$";CELLULE("nomfichier"))+1;20)&T(ALEA())
T(ALEA()) sert uniquement à forcer la mise à jour de la formule quand on change le nom de l'onglet. Cette formule est nommée Classe (voir Insertion > Nom > Définir).
Dans l'exemple joint, j'ai créé une feuille
Modele; il suffit de copier cette feuille et de changer son nom en nom de classe, pour que les élèves de cette classe apparaissent dans la feuille ainsi que toutes les informations liées. Bien sûr cette feuille n'est pas indispensable, on peut copier une feuille de classe existante et changer son nom.
En B2 d'une feuille de classe se trouve la formule matricielle (à valider par Ctrl+Maj+Entrée) :
Code : Tout sélectionner
=SI(ESTERR(PETITE.VALEUR(SI(ListeClasse=Classe;LIGNE(ListeNP);"");LIGNE(A1)));"";INDEX(ListeNP;PETITE.VALEUR(SI(ListeClasse=Classe;LIGNE(ListeNP);"");LIGNE(A1))-1))
ListeClasse est le nom de la plage $'Liste Inscriptions'.$D$2:$D$498.
ListeNP est le nom de la plage $'Liste Inscriptions'.$C$2:$C$498
Nommer des plages peut faciliter la relecture et la maintenance des formules.
Petit rappel :
Pour recopier une formule matricielle vers le bas :
- il suffit de positionner la souris dans le coin inférieur droit de la cellule : le curseur se transforme en croix (+), puis, il faut cliquer/glisser vers le bas (ou vers la droite) tout en appuyant simultanément sur la touche Ctrl ;
- une autre manière de faire est de copier la cellule initiale (Ctrl+C), puis de sélectionner la plage des cellules qui doivent contenir la même formule, puis de coller (Ctrl+V).
Les autres données des feuilles par classe sont récupérées grâce à la fonction RECHERCHEV() (ici en D2) :
Code : Tout sélectionner
=SI(ESTNA(RECHERCHEV($B2;Base;3;0));"";RECHERCHEV($B2;Base;3;0))
Base est le nom de la plage $'Liste Inscriptions'.$C$2:$Q$498
Remarque : visiblement le fichier provient d'une version Excel dont beaucoup de plages nommées sont inutilisables : il faudrait faire du nettoyage !
Attention, tu avais nommé les onglets de classe approximativement «CP B» au lieu de «CP1 B», «CM2 A» avec deux espace entre 2 et A… il faut plus de rigueur, sinon la reconnaissance du nom de classe ne sera pas faite, bien sûr.
Sur la feuille
Liste Inscriptions, j'ai mis une formule de validité sur la colonne de Classe :
tout en permettant la saisie de nouveaux noms de classe : si la classe est déjà présente plus haut, elle est aussi présente dans la liste déroulante, sinon, on a la possibilité d'en saisir une nouvelle, qui sera aussitôt incorporée à la prochaine liste déroulante.
Tout cela est à tester…
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1