Lier 2 classeurs par chemin relatif

Objectif :

Lier deux classeurs qui sont dans un même dossier par chemin relatif afin de pouvoir déplacer le dossier tout en conservant les liaisons.

A.xlsx (Classeur Source)

B.xlsx (Classeur recevant les données du classeur A.xlsx)

1) Par chemin absolu (Formule basique) :

Utiliser simplement un chemin absolu, en faisant ceci Excel peut lire un fichier fermé mais PROBLEME, si je souhaite déplacer mon dossier à un autre emplacement, la liaison est alors rompu.

='C:\Lier\[A.xlsx]Feuil1'!A2

2) Par chemin relatif (Utilisation de la formule INDIRECT) :

Cette fois ci, j'utilise la formule "CELULLE" pour déterminer le répertoire courant, j'ajoute à ceci le nom du classeur et la cellule utilisé puis j'utilise la fonction "INDIRECT" et PROBLEME, ça marche uniquement lorsque les deux classeurs sont ouvert car la fonction "INDIRECT" ne peut pat lire dans un classeur fermé.

=INDIRECT("'"&GAUCHE(CELLULE("filename");TROUVE("[";CELLULE("filename"))-1)&"[A.xlsx]Feuil1'!"&ADRESSE(LIGNE();COLONNE()))

3) Par fonction personnalisé : C'EST LA QUE j'AI BESOIN DE VOTRE AIDE

L'idée de base, utiliser une fonction personalisée avec comme unique paramètre "NomFichierSource".

Les deux classeurs se trouve dans le même répertoire, j'ai donc pensé à utiliser

thisworkbook.path

pour récupérer le répertoire courant.

Et l'adresse de la cellule renvoyé étant la cellule où est exécuter la formule.

Je pense que le troisième essais est réalisable mais je n'ai pas encore les compétences et c'est pour ceci que je vous sollicite.

Si vous avez d'autres pistes, n'hésitez pas, je suis preneur.

Merci d'avance

99lier.zip (12.76 Ko)

bonjour,

si j'ai bien compris.

une fonction personnalisée qui te renvoie le nom du chemin

à mettre dans un module

Function mypath()
mypath = ThisWorkbook.Path
End Function

à utiliser en excel

=mypath()

Dans le classeur B.xlsx. Une fonction personnalisé nommé "LIER" qui me renvoi la valeur de la même cellule du classeur A.xlsx avec comme paramètre "NomClasseur".

Exemple :

Si dans le classeur B.xlsx, j'ai A1=LIER(A.xlsx) --> ça me donne la valeur de A1 du classeur A.xlsx

Hydra a écrit :

Dans le classeur B.xlsx. Une fonction personnalisé nommé "LIER" qui me renvoi la valeur de la même cellule du classeur A.xlsx avec comme paramètre "NomClasseur".

Exemple :

Si dans le classeur B.xlsx, j'ai A1=LIER(A.xlsx) --> ça me donne la valeur de A1 du classeur A.xlsx

l'ouverture d'un autre classeur semble ne pas fonctionner dans une fonction personnalisée.

Rechercher des sujets similaires à "lier classeurs chemin relatif"