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

  • Initiateur de la discussion Initiateur de la discussion GillesC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 

Pièces jointes

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+
 
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!
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
831
Retour