Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

insérer une variable dans le nom d'un fichier

dgino

XLDnaute Nouveau
Bonjour,
J'ai une feuille nommé "1" dans le fichier suivi.xls

Dans cette feuille, j'ai une cellule contenant :
='chemin d'accès[1-PPI.xls]A5 - N+2'!$B$11

Elle affiche donc la cellule B11 de la feuille "A5- N+2" contenu dans le fichier "1-PPI.xls"

Je voudrais dans cette formule, à la place du 1, mettre le nom de la feuille utilisée
car je voudrais faire ça avec plusieurs feuilles : celle qui s'appelle "1" et dont une cellule utilise le fichier 1-PPI.xls, puis celle qui s'appelle "2" et dont une cellule utilise le fichier 2-PPI.xls, et etc...

je connais déjà la formule pouvant récupérer le nom de la feuille :
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)

Si je mets par exemple cette formule dans D12 de la feuille 1, ça m'affiche 1
Si je met directement D12 à la place de 1 dans la formule ='chemin d'accès[1-PPI.xls]A5 - N+2'!$B$11 c'est à dire ='chemin d'accès[D12-PPI.xls]A5 - N+2'!$B$11, évidemment ça ne marche pas. Il doit peu-être manquer quelque chose qui spécifie que c'est une variable.

Comment faire pour que cela marche s'il vous plait ?
Cordialement,
 
Dernière édition:

dgino

XLDnaute Nouveau
Re : insérer une variable dans le nom d'un fichier

D'après ta formule, je crois que tu n'as pas compris ce que je souhaite faire.
Peu-être n'ai-je pas été très clair.
 
Dernière édition:

dgino

XLDnaute Nouveau
Re : insérer une variable dans le nom d'un fichier

Bonjour.
Avec un peu plus de conviction :
Code:
=INDIRECT("'chemin d'accès["&$D$12&"-PPI.xls]A5 - N+2'!$B$11")

Merci mais désolai ça ne marche pas, ça me met #REF

Pour faire plus simple, j'ai créer une varaible dans la cellule A4 : =D12&"-PPI.xlsx" qui concatène le contenu de D12 et -PPI.xls
ça m'affiche bien le nom du fichier excel voulu, 1-PPI.xls en l'occurence dans la feuille 1.

je n'ai plus qu'à remplacer la formule
='chemin d'accès[1-PPI.xls]A5 - N+2'!$B$11
par :
='chemin d'accès[A4]A5 - N+2'!$B$11

Seulement je ne sais pas quoi mettre avec A4 pour faire comprendre à excel que c'est le contenu de A4 et non le texte A4 dont je veux me servir dans ma formule

si vous me suivez...
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : insérer une variable dans le nom d'un fichier

C'est INDIRECT qu'il faut utiliser, pas d'autre solution.
Dans votre dernier exemple, complètement différent, ce serait :
Code:
=INDIRECT("'chemin d'accès["&$A$4&"]A5 - N+2'!$B$11")
Notez que si le classeur est ouvert, pas besoin du chemin d'accès
Code:
=INDIRECT("'["&$A$4&"]A5 - N+2'!$B$11")
 
Dernière édition:

dgino

XLDnaute Nouveau
Re : insérer une variable dans le nom d'un fichier

Mince, ça ne marche pas non plus
Ca me met toujours #REF
Tandis que la cellule de la formule ='chemin d'accès[1-PPI.xls]A5 - N+2'!$B$11 affiche le résultat correct et A4 affiche bien 1-PPI.xls

Finalement j'ai simplifié en concaténant :

C1="=chemin d'accès["
C2 ="]A5 - N+2'!$B$11"
C3=C1&A4&C2

donc C3 m'affiche le texte =chemin d'accès[fichier_excel.xls]A5 - N+2'!$B$11

simple question : comment faire pour utiliser ce texte en formule d'une autre cellule ?
 
Dernière édition:

dgino

XLDnaute Nouveau
Re : insérer une variable dans le nom d'un fichier

Finalement j'ai réessayé la formule =INDIRECT("'chemin d'accès["&$A$4&"]A5 - N+2'!$B$11") mais en ouvrant l'autre classeur en question et là, magie : ça marche ! sauf que je ne veux pas que ce classeur soit ouvert...
Or apparemment avec cette fonction on est obligé
C'est pourtant basique ce que je veux faire : dans une cellule initiale : récupérer le contenu d'une cellule qui se trouve dans un autre classeur dont le nom sera fonction du nom de la feuille ou se trouve la cellule initiale.
 
Dernière édition:

Discussions similaires

Réponses
10
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…