Fonction Indirect dans une formule

Bonjour à tous,

Je me permets de solliciter votre aide pour une petite question.

Tout d'abord voici ma formule

=SOMME('M:\[Pointage 2021.xlsx]S0121'!$T:$T)

Ce que j'aimerais c'est de rendre la valeur "S01" juste après le nom du classeur variable en fonction de ma ligne.

Donc en B5 je dispose de la valeur S01. J'aimerais, lorsque j'étire, que cette valeur change en fonction de la ligne. Ma formule est en C5.

J'ai vu qu'il était possible avec Indirect mais je ne sais pas comment faire si vous avez d'autres solution je suis preneur.

Merci d'avance

Bonjour,

Une formule pour test, pas certain du résultat d'INDIRECT sur des classeurs externes :

=SOMME(INDIRECT("'M:\[Pointage 2021.xlsx]S"&TEXTE(LIGNE(A5)-4;"00")&"21'!$T:$T";VRAI))

Cdlt,

Bonjour Ergotamine et merci pour cette réponse, la formule fonctionne parfaitement. Avec la formule Indirect le classeur doit être ouvert donc pas de soucis de ce coté.

Puis-je te demander des explications sur la formule care j'aimerais comprendre comment cela fonctionne.

Encore merci

Bonjour Zalee, bonjour Ergotamine !

INDIRECT permet de convertir un texte qui représente une adresse de plage en plage valide (l'argument VRAI à la fin est facultatif : c'est la valeur par défaut)

TEXTE permet de convertir un nombre en texte formaté spécifiquement (par exemple, extraire uniquement le mois d'une date valide)

LIGNE renvoie le numéro de ligne d'une plage/cellule (5 pour A5 par exemple). Si aucune plage n'est indiquée, la formule renvoie le numéro de ligne dans laquelle elle se trouve

Bonjour Pedro,

Merci pour l'explication. Simple question est-il possible de faire la même chose mais sans Indirect ?

Comme indiqué, faire référence en fonction du numéro de ligne. J'ai essayé d'enlever Indirect et utiliser la même formule que texte mais cela ne fonctionne pas.

=SOMME(('M:\[Pointage 2021.xlsx]S"&TEXTE(LIGNE(A5)-4;"00")&"21'!$T:$T)). Je voudrais remplacer la valeur après S par le nombre dans ma cellule B5.

Merci d'avance

Non, le fichier de destination change selon une donnée variable, donc à moins de le réécrire pour chaque somme, le plus simple est d'utiliser INDIRECT.

Si le numéro est donné par le contenu de ta cellule B5 plutôt qu'un numéro de ligne, il te suffit de reprendre la formule d'Ergotamine et de remplacer LIGNE(A5)-4 par B5.

Mais pour cela l'utilisation d'indirect est obligatoire n'est-ce pas ?

Mais pour cela l'utilisation d'indirect est obligatoire n'est-ce pas ?

Sans la fonction indirect, ton texte qui ressemble à un nom de fichier ne sera pas compris par Excel comme une plage valide. Ca revient à écrire =SOMME("Torchons") qui n'a donc aucun sens. Je ne vois pas ce qui te bloque avec cette fonction ?

Le problème avec Indirect est le fait qu'une fois le classeur source fermé il est indiqué #REF dans toutes mes cellules, c'est le seul problème.

Le problème avec Indirect est le fait qu'une fois le classeur source fermé il est indiqué #REF dans toutes mes cellules, c'est le seul problème.

Dans ce cas, passe par VBA pour ne récupérer que le résultat de la fonction, ou écrire la somme directement avec la plage valide.

D'accord merci beaucoup Pedro je vais faire ça

Rechercher des sujets similaires à "fonction indirect formule"