Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom de fichier relatif

4 réponses
Avatar
Gilbert
Bonjour,

J'ai un fichier nommé CA2008 dans lequel je fait référence à un fichier
CA2007.
J'ai des formules du type ='D:\Mes documents\[C.A. 2007.xls]Janvier'!C$1
J'aimerais modifier cette formule pour ne pas écrire 2007 'en dur' mais que
cette valeur dépende du nom du fichier ouvert.
Ainsi j'aurai
='D:\Mes documents\[C.A. 2007.xls]Janvier'!C$1 dans le fichier CA2008
='D:\Mes documents\[C.A. 2008.xls]Janvier'!C$1 dans le fichier CA2009
etc...

J'ai essayé aussi en mettant la valeur dans une cellule, mais je ne trouve
pas la bonne syntaxe :
='"D:\Mes documents\Gilbert\GG\[C.A. " & Cumul!E20 -1 & ".xls]Janvier"'!B$1
Si dans une cellule je mets seulement ="aa" & Cumul!E20 & "aa", je récupère
bien aa2008aa, mais ça ne fonctionne pas avec le nom de fichier.

Merci d'avance pour vos idées

--
Cordialement,

Gilbert

4 réponses

Avatar
delphineR
Bonjour,

Le plus simple selon moi est de modifier les liaisons :
versions 2007 : "Donnéesé - "Modifier les liens d'accès"
versions 97-2003 : "Edition" - "Liaisons"



"Gilbert" a écrit :

Bonjour,

J'ai un fichier nommé CA2008 dans lequel je fait référence à un fichier
CA2007.
J'ai des formules du type ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1
J'aimerais modifier cette formule pour ne pas écrire 2007 'en dur' mais que
cette valeur dépende du nom du fichier ouvert.
Ainsi j'aurai
='D:Mes documents[C.A. 2007.xls]Janvier'!C$1 dans le fichier CA2008
='D:Mes documents[C.A. 2008.xls]Janvier'!C$1 dans le fichier CA2009
etc...

J'ai essayé aussi en mettant la valeur dans une cellule, mais je ne trouve
pas la bonne syntaxe :
='"D:Mes documentsGilbertGG[C.A. " & Cumul!E20 -1 & ".xls]Janvier"'!B$1
Si dans une cellule je mets seulement ="aa" & Cumul!E20 & "aa", je récupère
bien aa2008aa, mais ça ne fonctionne pas avec le nom de fichier.

Merci d'avance pour vos idées

--
Cordialement,

Gilbert






Avatar
Gilbert
Bonjour,

Merci pour ta réponse.
Effectivement c'est simple, mais j'aimerais quand même savoir si ce que j'ai
décrit est faisable ou pas avec une formule (en VBA je sais le faire).

--
Cordialement,

Gilbert


"delphineR" a écrit dans le message de
news:
Bonjour,

Le plus simple selon moi est de modifier les liaisons :
versions 2007 : "Donnéesé - "Modifier les liens d'accès"
versions 97-2003 : "Edition" - "Liaisons"



"Gilbert" a écrit :

> Bonjour,
>
> J'ai un fichier nommé CA2008 dans lequel je fait référence à un fichier
> CA2007.
> J'ai des formules du type ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1
> J'aimerais modifier cette formule pour ne pas écrire 2007 'en dur' mais


que
> cette valeur dépende du nom du fichier ouvert.
> Ainsi j'aurai
> ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1 dans le fichier


CA2008
> ='D:Mes documents[C.A. 2008.xls]Janvier'!C$1 dans le fichier


CA2009
> etc...
>
> J'ai essayé aussi en mettant la valeur dans une cellule, mais je ne


trouve
> pas la bonne syntaxe :
> ='"D:Mes documentsGilbertGG[C.A. " & Cumul!E20 -1 &


".xls]Janvier"'!B$1
> Si dans une cellule je mets seulement ="aa" & Cumul!E20 & "aa", je


récupère
> bien aa2008aa, mais ça ne fonctionne pas avec le nom de fichier.
>
> Merci d'avance pour vos idées
>
> --
> Cordialement,
>
> Gilbert
>
>
>
>


Avatar
papou
Bonjour Gilbert
Des éléments pour te permettre d'y parvenir :
Pour construire une référence à partir d'autres éléments situés dans une
cellule, tu peux utiliser la fonction INDIRECT.
Petit exemple vite fait,
avec en B1 le nom d'une feuille,
pour faire référence, à la valeur de la cellule A1 de la feuille identifiée
en B1 :
=INDIRECT(B1&"!"& "A1")
Après, il te suffit de bien veiller à intégrer tous les petits caractères
(de style ' ! [ et ]) pour que ta référence soit correcte.

Sinon, si c'est utile pour toi, tu peux également récupérer, par formule, le
nom complet du classeur :
=(CELLULE("nomfichier";A1))
NB :
La formule doit être inscrite dans le classeur dont tu veux récupérer le nom
Le classeur doit être enregistré
Tu adaptes si tu ne veux récupérer que le nom du classeur.

Cordialement
Pascal

"Gilbert" a écrit dans le message de news:

Bonjour,

J'ai un fichier nommé CA2008 dans lequel je fait référence à un fichier
CA2007.
J'ai des formules du type ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1
J'aimerais modifier cette formule pour ne pas écrire 2007 'en dur' mais
que
cette valeur dépende du nom du fichier ouvert.
Ainsi j'aurai
='D:Mes documents[C.A. 2007.xls]Janvier'!C$1 dans le fichier CA2008
='D:Mes documents[C.A. 2008.xls]Janvier'!C$1 dans le fichier CA2009
etc...

J'ai essayé aussi en mettant la valeur dans une cellule, mais je ne trouve
pas la bonne syntaxe :
='"D:Mes documentsGilbertGG[C.A. " & Cumul!E20 -1 &
".xls]Janvier"'!B$1
Si dans une cellule je mets seulement ="aa" & Cumul!E20 & "aa", je
récupère
bien aa2008aa, mais ça ne fonctionne pas avec le nom de fichier.

Merci d'avance pour vos idées

--
Cordialement,

Gilbert





Avatar
Gilbert
Bonjour

Merci de ta réponse
Avec INDIRECT j'obtiens bien ce que je veux mais à la condition que le
classeur auquel mes cellules font référence soit ouvert.
Ce qui n'est bien sûr pas le cas en général.
J'ai donc fait ça en VBA.

--
Cordialement,

Gilbert


"papou" a écrit dans le message
de news:%
Bonjour Gilbert
Des éléments pour te permettre d'y parvenir :
Pour construire une référence à partir d'autres éléments situés dans une
cellule, tu peux utiliser la fonction INDIRECT.
Petit exemple vite fait,
avec en B1 le nom d'une feuille,
pour faire référence, à la valeur de la cellule A1 de la feuille


identifiée
en B1 :
=INDIRECT(B1&"!"& "A1")
Après, il te suffit de bien veiller à intégrer tous les petits caractères
(de style ' ! [ et ]) pour que ta référence soit correcte.

Sinon, si c'est utile pour toi, tu peux également récupérer, par formule,


le
nom complet du classeur :
=(CELLULE("nomfichier";A1))
NB :
La formule doit être inscrite dans le classeur dont tu veux récupérer le


nom
Le classeur doit être enregistré
Tu adaptes si tu ne veux récupérer que le nom du classeur.

Cordialement
Pascal

"Gilbert" a écrit dans le message de news:

> Bonjour,
>
> J'ai un fichier nommé CA2008 dans lequel je fait référence à un fichier
> CA2007.
> J'ai des formules du type ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1
> J'aimerais modifier cette formule pour ne pas écrire 2007 'en dur' mais
> que
> cette valeur dépende du nom du fichier ouvert.
> Ainsi j'aurai
> ='D:Mes documents[C.A. 2007.xls]Janvier'!C$1 dans le fichier CA2008
> ='D:Mes documents[C.A. 2008.xls]Janvier'!C$1 dans le fichier CA2009
> etc...
>
> J'ai essayé aussi en mettant la valeur dans une cellule, mais je ne


trouve
> pas la bonne syntaxe :
> ='"D:Mes documentsGilbertGG[C.A. " & Cumul!E20 -1 &
> ".xls]Janvier"'!B$1
> Si dans une cellule je mets seulement ="aa" & Cumul!E20 & "aa", je
> récupère
> bien aa2008aa, mais ça ne fonctionne pas avec le nom de fichier.
>
> Merci d'avance pour vos idées
>
> --
> Cordialement,
>
> Gilbert
>
>
>