Je me dis alors que la fonction SOMMEPROD génère cette erreur car ce code fonctionne sans soucis :
Code:
=SOMME(DECALER(INDIRECT("B" & LIGNE());-1;4;-10))
En faisant des tests, j'ai remarqué que c'était l'utilisation de la fonction LIGNE() dans le SOMMPROD qui posait soucis puisque ce code fonctionne très bien
Merci pour ta réponse
Malheureusement, ça ne va pas m'aider car mon objectif est bien d'inclure la ligne en cours sans me soucier de son numéro. Ecrire LIGNES($1:1) ou garder le numéro de la ligne en dur c'est pareil...
Je veux que le premier paramètre de DECALER soit dynamique en fonction de la ligne en cours tout simplement (et même si un copier / coller de la fomule fonctionnerait de ligne en ligne, ce n'est pas ce que je cherche, je souhaite que le premier paramètre de DECALER soit lié à la ligne en cours sans avoir besoin de préciser celle ci "en dur"
Si tu fais avec DECALER(C1:C$6;...) (ou DECALER(C10:C$16 si tu veux commencer la plage intéressante ailleurs), la plage utilisée sera dynamique, puisqu'il ni a pas de $ devant le 1.
Je connais bien ce principe de base du "$" (je travaille avec Excel depuis un certain nombre d'année pour le boulot) mais ce n'est dynamique que si on copie la cellule et qu'on la colle ailleurs oui. Par contre, si tu colles le texte de la formule dans un autre classeur ça ne fonctionne plus.
Je peux aussi l'appliquer en VBA très facilement avec du RC[-1] mais ce n'est pas ce que je cherche à faire en priorité.
Et comme ça, est-ce que cela te va mieux ? J'ai l'impression que le copier-coller d'un classeur vers un autre ne pose pas de problème.
@ plus
P.S : J'ai utilisé la fonction LIRE.CELLULE qui ne peut être utilisée que dans le gestionnaire de noms, et avec une extension prenant en compte les macros. C'est du XL4, un langage utilisé avant le VBA...