Bonsoir
Puisque ça fonctionne
=SI(B2=2009;INDIRECT("Janvier!D"&LIGNE()-NB.VIDE(C$1:C1));"")
LIGNE() renvoie le numéro de la ligne
NB.VIDE(plage) renvoie le nombre de cellule vide dans la plage.
En C2, B2 = 2009. 'Janvier!D"&LIGNE()-NB.VIDE(C
$1:C1) renvoie le texte Janvier!D2.
Avec INDIRECT, excel comprend que ce texte fait référence à la cellule Janvier!D2, et il renvoie la valeur contenue dans cette cellule.
En C3, on a =SI(B
3=2009;INDIRECT("Janvier!D"&LIGNE()-NB.VIDE(C
$1:C
2));"")
Comme B3 n'est pas égal à 2009, excel renvoie "".
En C4 on a =SI(B
4=2009;INDIRECT("Janvier!D"&LIGNE()-NB.VIDE(C
$1:C
3));""), qui renvoie le contenu de la cellule Janvier!D3.
Au passage, notes l'importance du $ en vert dans les formules ci-dessus. C'est lui qui fait que la fonction NB.VIDE(plage) renvoie un nombre de plus en plus grand.
@ plus
@ plus