Partager via

Fonction INDIRECT pour cumuler les résultats

Anonyme
2024-03-27T10:06:07+00:00

Bonjour,

J'utilise actuellement la fonction INDIRECT pour récupérer les résultats du mois précédent et les cumuler à ceux du mois actuel. Comme je souhaite qu'à chaque nouvelle feuille, on puisse récupérer les valeurs de celle qui précède j'utilise également la fonction INDEX.

Voilà actuellement ma formule :

=INDIRECT(INDEX(NomFeuille;0;EQUIV(STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;99);NomFeuille;0)-1) & "!" & ADRESSE(Ligne();22))

Toute la fonction INDEX sert à récupérer le nom de la feuille précédente sans incrémentation des noms de feuille et sans les connaitre. La fonction NomFeuille fait référence à une matrice des noms de feuilles, écrite comme cela :

=STXT(LIRE.CLASSEUR(1);TROUVE("]";LIRE.CLASSEUR(1))+1;99)

Après concaténation et exécution des formules comprises dans INDIRECT je me retrouve avec cette formule dans les mains :

=INDIRECT({"JANVIER!$V$8"})

Et là, Excel n'arrive pas à me récupérer la valeur de la feuille précédente et m'affiche systématiquement #VALEUR.

Si jamais quelqu'un a une piste pour les raisons de ce problème...

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2024-03-27T14:49:46+00:00

Bonjour,

Mets :

=INDIRECT(INDEX(var;EQUIV(STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;99);var;0)-1) & "!" & ADRESSE(LIGNE();22))

Le fait de mettre "0" dans :

INDEX(NomFeuille;0;EQUIV(STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;99);NomFeuille;0)-1)

indique que tu prends toute les lignes de la matrice NomFeuille (ça gêne, même s'il n'y a qu'une ligne). Tu pourrais mettre 1 à la place de 0 pour indiquer la première ligne.

Daniel

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

1 réponse supplémentaire

  1. Anonyme
    2024-03-27T15:47:07+00:00

    Merci pour ta réponse, effectivement c'était juste la prise en compte des lignes de la matrice qui posait problème apriori !

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire