Microsoft 365 Récupérer une valeur présente dans un autre fichier dont le chemin et le nom est présent dans une cellule

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 !

Diane272727

XLDnaute Junior
Bonjour,
Je souhaite utiliser la formule ci dessous pour récupérer une valeur présente dans le fichier "Source" en fonction d'autres valeurs. Jusque là tout va bien.

Mais je voudrais pouvoir, dans ma formule, récupérer le chemin et le nom du fichier présent dans la cellule A2 du fichier.


=SIERREUR(INDEX('C:\Users\XX\Downloads\[Source.xlsx]#REF'!$AZ$4:$AZ$1000;
EQUIV($D$6&$D$7&$D$8;'C:\Users\XX\Downloads\Source.xlsx]#REF'!$C$4:$C$1000&'C:\Users\XX\Downloads\Source.xlsx]#REF'!$D$4:$D$1000&'C:\Users\XX\Downloads\[Source.xlsx]#REF'!$E$4:$E$1000;0);0);
INDEX('C:\Users\XX\Downloads\[Source.xlsx]#REF'!$AZ$4:$AZ$1000;
EQUIV($D$6&$D$7;'C:\Users\XX\Downloads\[Source.xlsx]#REF'!$C$4:$C$1000&'C:\Users\XX\Downloads\[Source.xlsx]#REF'!$D$4:$D$1000&'C:\Users\XX\Downloads\[Source.xlsx]#REF'!$E$4:$E$1000;0);0))

Merci beaucoup pour votre aide.
 

Pièces jointes

Bonjour,

Vous avez déjà essayé votre formule sans chercher à faire ce que vous souhaitez !
Vous savez, j'espère qu'il faut que l'autre fichier soit ouvert pour que cela fonctionne !?

Et dans ce cas, quid de la demande de votre précédent poste 😕

A+
 
Bonjour,

Vous avez déjà essayé votre formule sans chercher à faire ce que vous souhaitez !
Vous savez, j'espère qu'il faut que l'autre fichier soit ouvert pour que cela fonctionne !?

Et dans ce cas, quid de la demande de votre précédent poste 😕

A+
En fait, j'ai créé un nouveau post car je me suis rendue compte qu'il ne fallait pas remonter le nom de la cellule dans la fonction VBA car j'ai des formules qui doivent aller les chercher.
 
J'ai mis à jour mes 2 fichiers, en PJ pour que ma demande soit plus simple et donc plus compréhensible en modifiant la fonction VBA, la fonction et les colonnes appelées.
Donc je voudrait pouvoir récupérer dans la cellule A1 du fichier "Test", les valeurs de la colonne A1 à A10, du fichier dont le nom du répertoire est présent dans la cellule B1 du fichier "Test".

Voici le code de la fonction de la cellule A1 : =GetDataFromClosedWorkbook($B$1; "Onglet"; "A1:A10")

Et le code VBA :

Function GetDataFromClosedWorkbook(filePath As String, sheetName As String, cellRange As String) As Variant
Dim conn As Object
Dim rs As Object
Dim connectionString As String
Dim query As String

' Créer la chaîne de connexion
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filePath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

' Créer la requête SQL
query = "SELECT * FROM [" & sheetName & "$" & cellRange & "]"

' Initialiser l'objet ADODB.Connection
Set conn = CreateObject("ADODB.Connection")
conn.Open connectionString

' Initialiser l'objet ADODB.Recordset
Set rs = CreateObject("ADODB.Recordset")
rs.Open query, conn, 1, 3

' Copier les données dans une variable
GetDataFromClosedWorkbook = rs.GetRows

' Fermer la connexion et libérer les objets
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End Function


J'ai pour résultat "#VALEUR!". Est ce que que vous auriez une idée de qui ne va pas dans mes fonctions ?

Merci beaucoup
 

Pièces jointes

Re,

2 choses, pourquoi ne pas avoir gardé la fonction que je vous avait donné... ça fait plaisir tiens 🙄
et de plus pourquoi ne pas utiliser Power Query 🤔 🤪

Perso je laisse tomber avec vous
Bonne chance
Votre première fonction a parfaitement répondu à mes attentes, et je vous en remercie sincèrement. Cependant, ma demande a évolué, ce qui m'a conduit à créer un nouveau post.

Je trouve cela regrettable que cette situation ait pu causer des tensions.

Dans ma fonction, j'aimerais simplement remonter une colonne entière, plutôt qu'une seule cellule.
 
Votre première fonction a parfaitement répondu à mes attentes, et je vous en remercie sincèrement. Cependant, ma demande a évolué, ce qui m'a conduit à créer un nouveau post.

Je trouve cela regrettable que cette situation ait pu causer des tensions.

Dans ma fonction, j'aimerais simplement remonter une colonne entière, plutôt qu'une seule cellule.
Bonjour,
Aucune inquiétude, il n'y pas de tension particulière, mais il est bien d'informer ceux qui participent 🙁

Donc ma question est toujours d'actualité, pourquoi vouloir utiliser VBA alors que PQ fait le taf 🤔

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

Retour