Microsoft 365 fonction =indirect()

Oscar21

XLDnaute Nouveau
Bonjour,
J'ai un problème et je rame depuis déjà plusieurs jour sans trouver, même en cherchant sur internet .

Voilà j'ai un fichier avec plusieurs onglets portant des noms d'élèves et un onglets récapitulatif des côtes des élèves.
dans l'onglet récapitulatif, je vais chercher une cote dans la fiche de l'élève avec la fonction =@INDIRECT($C3&"!f8")
$C3 étant le nom de l'onglet ou de l'élève dans la feuille résumé et f8 étant la cellule dont je veux rapatrier la valeur dans l'onglet.
J'ai plusieurs cotes à rapatrier en f8, f9, f10, etc.... toutes dans la même colonne

exemple : la fiche de l'élève Marc
mois octobre (colonne f)mois novembre (colonne g)mois de décembre (colonne h)mois de janvier (colonne i)
cote dessinf8 = 8g8 =8etc....
cote francaisf9 = 7g9= 10
cote histoiref10 = 6g10= 7
cote gymnastiquef11 = 8g11= 5

Fiche résumée octobre
nom (colonne c)cote dessin (colonne d)cote français (colonne e)cote histoire (colonne f)
marc=@INDIRECT($C1&"!f2")=@INDIRECT($C1&"!f3")=@INDIRECT($C1&"!f4")
paul=@INDIRECT($C2&"!f2")=@INDIRECT($C2&"!f3")=@INDIRECT($C2&"!f3")
jacques

Jusque là tout va bien :)

Le problème est que l'année suivante, ou le mois suivant les cotes ne sont plus dans la colonne f, mais dans la colonne g.
Résultat je dois changer toute mes formules =@INDIRECT($C1&"!f2") en =@INDIRECT($C1&"!g2")........ g3, g4, g5 etc....

Je me suis dit je vais mettre une formule du genre SI pour donner une valeur à une cellule que j'utiliserai dans ma formule =@INDIRECT($C1&"!f2") pour faire varier mon f2, f3, f4 en g2, g3,g4 et ensuite h2, h3, h4 etc....
exemple :
D1=SI(B1=octobre;"f";SI(B1=novembre;"g";SI(B1=décembre;"e"; etc............

Ensuite j'essaie de remplacer ma formule par : =@INDIRECT($C3&"!D1&2"), mais ça ne va pas
j'ai essayé
=@INDIRECT($C6&@INDIRECT("!d1&2")) marche pas
=@INDIRECT($C6&!indirect("d1&2")) marche pas
=@INDIRECT($C6&!indirect("d1&d2")) en mettant f dans D1 et 2 dans D2 ca ne marche pas
=@INDIRECT($C6&@INDIRECT("!d1")) en mettant directement f2 dans D1 ca ne marche pas

J'espère que mes explications sont claires, si vous avez une solution, un grand merci d'avance :)
 
Solution
Bonsoir Oscar,
En fait il faut reconstruire l'adresse de la cellule cible. Par ex : Feuil3!H2 donc un seul indirect est suffisant :
VB:
=INDIRECT("'"&$C6&"'!"&$D$1&"2")
Ne pas oublier les apostrophes qui sont utiles si le nom de la feuille contient des espaces.

Oscar21

XLDnaute Nouveau
Bonsoir Sylvanu
un grand grand merci !!! c'est super !!! ça fonctionne

Mes noms de feuilles n'ont pas d'espace, seulement des prénoms simple, donc c'était déjà plus facile.
j'ai utilisé en me basant sur ta formule et tes conseils, la formule =INDIRECT($C6&"!"&$D$1&"2")

ou C5 est le nom de la feuille (ex: Marc)
ou D1 est la lettre qui représente le mois (dans le cas présent, c'est octobre => D =f )
et le 2 pour faire la référence f2 dans la feuille de Marc
Résultat ça renvois vers Marc!f2 , grâce à toi j'ai enfin compris comment fonctionne cette formule indirect

ENCORE UN GRAND MERCI :)
 

Discussions similaires

Réponses
9
Affichages
438
Réponses
1
Affichages
568

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16