Intégrer un nom de classeur fermé dans une formule

GillesC

XLDnaute Occasionnel
Bonjour,
je voudrais récupérer dans mon fichier Recap des données contenues dans plusieurs répertoires.

Le chemin direct fonctionne, bien sûr.
Genre : ='C:\PARIS\[01_JANVIER.xls]TOTAL'!C$53

Mon fichier Recap contient une colonne avec le nom des classeurs.
Exemple en B5 : 01_JANVIER
Comment les intégrer dans ma formule?
Pour donner : ='C:\PARIS\[&(B5)&.xls]TOTAL'!C$53

INDIRECT ne fonctionne que si le classeur est ouvert! Y-a-t-il une autre solution?

Je joins un petit classeur pour l'exemple
Merci d'avance
 

Fichiers joints

job75

XLDnaute Barbatruc
Re : Intégrer un nom de classeur fermé dans une formule

Bonjour GillesC,

La solution c'est une macro, par exemple pour renseigner toutes les lignes :

Code:
Sub Liaisons()
Dim c As Range
For Each c In [A5:A16]
  c(1, 2) = "='C:\PARIS\[" & c & ".xls]TOTAL'!C53"
  c(1, 3) = "='C:\PARIS\[" & c & ".xls]TOTAL'!D53"
Next
End Sub
A+
 

GillesC

XLDnaute Occasionnel
Re : Intégrer un nom de classeur fermé dans une formule

Bonjour à vous et merci pour les réponses!
Pour Job57 :
Je prépare ce fichier pour quelqu'un d'autre, et j'aurais souhaité éviter le VBA. Mais je crois que je vais m'y résoudre quand même.
Pour st007 :
J'avais bien lu le truc de morefunc dans mes recherches sur ce sujet, mais je n'ai pas trouvé de "morefunc" sur mon C.
Je vais quand même investiguer.

Quoi qu'il en soit, merci beaucoup à vous deux!
Et bonne journée le forum!
 

job75

XLDnaute Barbatruc
Re : Intégrer un nom de classeur fermé dans une formule

Bonjour GillesC, st007,

Juste un petit complément.

Pour éviter l'ouverture de la boîte de dialogue quand un fichier source n'est pas trouvé, utiliser :

Code:
Sub Liaisons()
Dim c As Range
Application.DisplayAlerts = False 'si un fichier source n'est pas trouvé
For Each c In [A5:A16]
  c(1, 2) = "='C:\PARIS\[" & c & ".xls]TOTAL'!C53"
  c(1, 3) = "='C:\PARIS\[" & c & ".xls]TOTAL'!D53"
Next
End Sub
A+
 

Discussions similaires


Haut Bas