FONCTION RECHERCHE

Yann21

XLDnaute Occasionnel
Bonjour,

Je suis enseignant et j'utilise un fichier Excel pour la gestion de classe (participation, oublis, ...).

Sur mon fichier, j'ai une feuille LISTE sur laquelle je saisi mes élèves et plusieurs feuilles qui correspondent à mes plans de classe où je note les évènements constatés.

Je voudrai mettre une fonction type RECHERCHE/EQUIV ou autre qui me récupère sur la feuille LISTE les infos saisies sur les feuilles plans de classe.

Je mets mon fichier en pièce jointe.

Merci pour votre aide.
 

Pièces jointes

  • TEST.xlsm
    59 KB · Affichages: 53

Yann21

XLDnaute Occasionnel
Bonjour Thebenoit59,

J'ai regardé ton idée, mais ce qui ne va pas, c'est que je saisis les éléments (bonus et malus) sur la feuille plan de classe pour avoir ensuite un report automatique sur la feuille LISTE.
J'ai fait un essai avec ta version mais je n'obtiens pas le résultat escompté.
Merci pour ta proposition.
Cdlt.
Yann
 

CISCO

XLDnaute Barbatruc
Bonjour

Deux questions :
* Pourquoi as-tu 8 colonnes par élève dans la première feuille, 4 rouges, 4 vertes, et seulement 4 dans les feuilles suivantes ?
* Que faut-il mettre dans la feuille Liste, les résultats des lignes 22, 33, 44 etc, ou autres choses ?

@ plus
 

Yann21

XLDnaute Occasionnel
Bonjour CISCO
* Sur la feuille plan de classe, il y a bien 8 cases pour chaque élèves (2 en haut à gauche du nom, 2 en bas à gauche du nom, 2 en haut à droite du nom et 2 en bas à droite du nom)
*Oui il faut reporter les totaux correspondant aux cases OM, TP, CI, CP, PO, IC, DM et TS pour chaque élève.
Il faut à la fois que la formule :
- Recherche sur quelle feuille figure les infos en fonction de la classe de l'élève (1 feuille par classe)
- Recherche le nom de l'élève sur la feuille plan de classe et récupère les scores pour les 8 items.
Cordialement.
Yann
 

CISCO

XLDnaute Barbatruc
Bonjour

Cf. en pièce jointe.
J'ai utilisé la méthode suivante :
* la formule
Code:
MAX(SI(INDIRECT($A3&"!"&"$D$15:$AW$55")=$B3;LIGNE($15:$55))
en matriciel, renvoie le n° de la ligne du tableau contenant le prénom contenu dans B3 sur la feuille A3
* la formule
Code:
MAX(SI(INDIRECT($A3&"!"&"$D$15:$AW$55")=$B3;COLONNE($D:$AW))
en matriciel, renvoie le n° de la colonne du tableau contenant le prénom contenu dans B3 sur la feuille A3
Avec ces deux informations, on peut avoir l'adresse de la cellule contenant le prénom contenu dans B3 sur la feuille A3.
* Dans le gestionnaire de noms, le nom adressenom renvoie la feuille et l'adresse de la cellule contenant...

* Toutes les cellules du tableau dans la feuille LISTE contiennent une formule du style SIERREUR(DECALER(adressenom;x;y);""), x (=nbre de lignes du décalage) et y (nbre de colonnes du décalage) permettant d'atteindre la cellule désirée en partant de la cellule contenant le prénom contenu dans B3. Par ex, pour OM, on a x = 0 et y = -2, c.à-d. qu'on recherche l'information sur la même ligne que le prénom, cellule placée deux colonnes avant.

@ plus
 

Pièces jointes

  • ElèveTEST.xlsm
    61.7 KB · Affichages: 34

Yann21

XLDnaute Occasionnel
Bonjour CISCO,

Cela m'a l'air bon.
J'ai bien vu qu'il y avait des formules sur la feuille LISTE : =SIERREUR(DECALER(adresseprénom;7;2);"")
Par contre, elle est où cette feuille A3 ? avec MAX(SI(INDIRECT($A3&"!"&"$D$15:$AW$55")=$B3;COLONNE($D:$AW)) (c'est une formule excel ? c'est du code ?).

Cordialement.

Yann
 

CISCO

XLDnaute Barbatruc
Bonjour

Cliques sur une des cellules de la feuille LISTE, sur la ligne 3 par exemple. Il faut ensuite que tu cliques sur l'onglet Formules, puis sur gestionnaire de noms, puis, dans la fenêtre qui s'ouvre alors, sur adressenom. La formule définissant ce nom est longue car Excel y rajoute systématiquement le nom des feuilles utilisées, ce qui n'est pas toujours indispensable. Si tu veux l'étudier, tu la copies, et tu la colles dans une cellule de la feuille LISTE sur la ligne 3. Par contre, tous les $ sont indispensables. Donc, attention aux modifications malencontreuses... En plus, ici, il s'agit d'une formule matricielle. Il faut donc la valider avec Ctrl+maj+entrer (dans le gestionnaire de noms, ce n'est pas nécessaire).

On pourrait très bien mettre cette formule directement dans SIERREUR(DECALER... mais cela ferait une formule vraiment très longue. Donc, le plus simple, c'est de lui donner un nom dans le gestionnaire de noms, et d'utiliser ensuite ce nom dans les formules.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Et merci pour ce retour.

Au plaisir, et bonne chance avec tes élèves...

@ plus

P.S : La fonction DECALER est volatile, ce qui signifie que les formules l'utilisant sont recalculées dès qu'il y a une modification sur la feuille correspondante, même si il ni y a pas de lien entre la modification et les cellules l'utilisant. Défaut du système : S'il y a beaucoup de fonctions DECALER, cela prend pas mal de temps de calcul. Dans ton cas, cela ne doit pas poser de problème. Autrement, on peut peut être faire avec un INDEX à la place. A creuser si nécessaire.
 

Discussions similaires

Réponses
8
Affichages
377
Réponses
14
Affichages
1 K

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87