Accès à un classeur par concaténation d'un chemin

Bonjour,

J'ai, dans quelques fichiers professionnels, des références à d'autres fichiers. C'est une méthode qui ne me plait pas, mais on m'a demandé de ne pas modifier cette façon de faire (du moins pour l'instant ... ). Donc pour l'instant, je n'ai pas le choix de la méthode utilisée.

Par exemple, pour aller chercher la valeur de la cellule "adresse_cellule_cible" de la feuille "onglet_cible" du fichier "fichier_cible" dans le répertoire "chemin_du_fichier",

j'ai la formule suivante : ='chemin_du_fichier\[fichier_cible]onglet_cible'!adresse_cellule_cible

Le problème est quand je fais une somme de cellules contenues dans d'autres fichiers, j'arrive à une formule très longue et incompréhensible. Je voudrais donc pouvoir donner le chemin, le fichier, l'onglet et la cellule dans des cellules différentes, et concaténer le tout dans la cellule de destination. J'aurais donc :

cellule A1 : ="chemin" (==> chemin_du_fichier)

cellule A2 : ="fichier" (==> fichier_cible, avec ou sans les crochets)

cellule A3 : ="onglet" (==> onglet_cible)

cellule A4 : ="$B$10" (==> adresse_cellule_cible)

Le problème est qu'une concaténation simple ne fonctionne pas puisque je dois faire comprendre à Excel que cette contaténation de chaines est une adresse. Et là, je suis coincé .... J'ai testé la fonction "ADRESSE" mais sans résultat...

Merci pour votre aide

jlr

Bonjour,

Utilises la fonction INDIRECT(), qui permet à Excel d'interpréter un texte comme une référence de plage.

Merci pour ton aide Pedro,

En reprenant l'exemple :

chaine complète : '\\chemin\[fichier]onglet'!$B$10 avec le découpage suivant :

  • cellule A1 : ="'\\chemin\"
  • cellule A2 : ="[fichier]"
  • cellule A3 : ="onglet'!"
  • cellule A4 : ="$B$10"

j'ai testé : =INDIRECT(A1 & A2 & A3 & A4), et j'obtiens un splendide #REF!

jlr

Le fichier en question est-il ouvert ? Essaie en différentes étapes, d'abord un référence sur une autre feuille du classeur actif, puis d'un autre classeur...

OK, ça fonctionne quand le fichier est ouvert.

Est-ce que cela veut dire que ça ne fonctionne pas quand le fichier est fermé ?

Y a t-il un autre moyen ?

En tout cas, merci beaucoup pour ton aide !

jlr

Je ne suis pas expert sur la question, mais je crois que c'est plus compliqué de manipuler un fichier fermé.

Oui, je m'en aperçois.

Ce que je ne comprends pas très bien, c'est pourquoi le lien complet fonctionne avec un fichier fermé, alors qu'il ne fonctionne plus si on le découpe et qu'on le reconstitue avec "CONCATENER".

jlr

Pour le coup je ne sais pas, j'ai essayé sans plus de succès de mon côté avec la fonction INDIRECT, que je manipule pourtant facilement dans d'autres cas de figure.

Mais dans tous les cas, une adresse de plage écrite au format texte n'est pas interprétable par excel telle qu'elle. Par exemple si tu écris en A1 : $B$1 et que en C1 tu écris =A1, tu obtiendras $B$1 et pas la valeur contenue en B1.

Oui, je connais la fonction INDIRECT, même sie je l'utilise pas souvent.

En regardant l'aide Excel, je tombe sur l'exemple "référence à un classeur fermé avec la fonction INDIRECT" et la solution donnée : "Ouvrir le classeur référencé"

Merci Microsoft....

jlr

A part passer par macro, je ne vois pas comment faire ça autrement.

C'est ce que je voudrais mais pas possible pour l'instant, quelques résistances à vaincre en interne ....

Merci

jlr

Pas de soucis !

Rechercher des sujets similaires à "acces classeur concatenation chemin"