Menu

Récupérer valeur cellule dans d'autres classeurs [Résolu]

- - Dernière réponse :  Thibault - 9 juil. 2019 à 13:48
Bonjour,

Je souhaite récupérer dans un fichier Excel des valeurs de cellules situées dans d'autres fichiers Excel.
Ces fichiers sont dans des dossier différents. La cellule par contre est toujours située au même endroit (même nom d'onglet et même case).
J'ai mis en case A1 le début du chemin d'accès et dans d'autres cases la partie changeante du chemin (cf. photo de l'extract : https://www.cjoint.com/c/IGig4BOtf5k).
Ayant pas mal de valeurs à récupérer ainsi (plusieurs valeurs dans plusieurs fichiers), j'aimerais avoir une formule du style: $A$1&Ai&\[nom du fichier.xlsx]10. Onglet'!$G$2.
Je n'arrive pas à trouver la bonne combinaison avec les bons symboles au bon endroit.
Je pense qu'il doit y avoir une solution avec des formules. J'aimerais me passer de macro pour cela.
Merci d'avance pour votre aide.
Afficher la suite 

3 réponses

Messages postés
2427
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 juillet 2019
265
0
Merci
Bonjour à tous,

essaye :
=indirect($A$1&Ai&"\'[nom du fichier]onglet'!$G$2")


Crdlmt
Commenter la réponse de DjiDji59430
0
Merci
Merci de t'être arrêté sur mon post.
Cette formule ne fonctionne pas. Cela m'indique une erreur #REF!.
Je ne l'ai pas précisé dans mon 1er post mais les formules doivent fonctionner avec les classeurs fermés.
Même avec le classeur ouvert, cela ne fonctionne pas avec cette formule.
DjiDji59430
Messages postés
2427
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 juillet 2019
265 -
C'est une formule générale.

Un fichier (test ou non), complété par des explications exhaustives, mis sur https://www.cjoint.com/ permettrait de répondre plus précisément à ta question


Crdmt
Je ne vois pas ce que je pourrais écrire de plus que ce que j'ai mis dans le screenshot.
La formule écrite ainsi fonctionne (avec les vrais noms pour chaque partie du chemin bien sûr).
Mais en cherchant à remplacer des parties du chemin par les valeurs A1 et Ai afin "d'automatiser" la formule, cela ne fonctionne pas.
Voici le fichier simplifié : https://www.cjoint.com/c/IGipdju8APk
La formule écrite ainsi fonctionne chez moi.
Il faudrait l'automatiser en remplaçant le début du chemin par A1 et la partie centrale par Ai.
DjiDji59430
Messages postés
2427
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 juillet 2019
265 -
la fonction indirect() que je t'ai proposé travaille uniquement sur des fichiers ouverts
pour des fichiers fermés, il faut passer par du VBA (que je ne sais pas faire!)
Désolé
OK. Tant pis.
Merci quand même.
Commenter la réponse de Thibault
0
Merci
J'ai obtenu une réponse sur un autre forum.
Pour info, on est obligé d'utiliser une macro dans ce cas.
Là voici :



Sub Liaison()
Dim chemin$, txt$, tablo, i&
chemin = [A1]
txt = "\[E_0306_v8_8K_QC_report.xlsx]10. Quality KPI'!$G$2"
With [A3].CurrentRegion.Resize(, 2)
tablo = .Formula 'matrice, plus rapide
For i = 1 To UBound(tablo)
tablo(i, 2) = "='" & chemin & tablo(i, 1) & txt
Next
Application.DisplayAlerts = False
.Formula = tablo
End With
End Sub
Commenter la réponse de Thibault