Recherche une cellule dans une base de données de fichier Excel

Bonjour,

Je m'explique, on à un logiciel de type ERP qui propose des extractions en format Excel.
Le format de l'Excel est le même mais le nom du fichier Excel extrait diffères selon 2 variables.

on veux créer un fichier qui va centraliser et traiter l'information.
il fait donc des appels de ce type : ='[Classeur1 indice(1).xlsx]Feuil1'!$A$1

Je souhaite pouvoir rendre la formule variable suivant 2 case dont l'une donne le 1 de "classeur1" et l'autre le 1 de "indice(1)".

J'ai pas de formation à proprement parlé.
J'ai tenté sans succès une fonction CONCAT du genre : =CONCAT("'[Classeur";B2;" indice(";C2;");xlsx]Feuil1'!$A$1")

Si quelqu'un à une solution à ce problème, ce serait super.

Merci de votre attention

Bonjour, voir plutôt avec la fonction " INDIRECT()".

Dans le genre =INDIRECT("'[Classeur"&B2&"indice("&C2&");xlsx]Feuil1'!$A$1")

Bonjour Xmenpl,

J'ai eu l'occasion d'utiliser cette fonction pour de la validation de cellule lié à une autre validation de cellule.

Par contre dans ce cas là le fichier Excel dont je viens chercher la donnée n'est d'une part pas forcement ouvert, d'autre part la cellule à récupérer est en format texte.

J'ai quand même fait des test avec la fonction indirect mais elle me renvoi #REF! dans presque tout les cas et 0 quand le fichier est ouvert et que la case à récupérer indique une autre case de la même feuille. ( ex : =INDIRECT("'[Classeur"&B2&" indice("&C2&");xlsx]Feuil1'!$A$1") avec A1=B1) et ça peut importe la valeur de B1.

Merci de votre attention.

Si vous souhaitez récupérer la valeur d'une cellule d'un classeur fermé celà est impossible par formule.

C'est faisable uniquement car code VBA macro.

Voir sujet ci-après.

https://forum.excel-pratique.com/excel/lire-une-valeur-cellule-d-un-classeur-ferme-147448

Salut

Nickel, j'ai adapté le code VBA ci-joint pour ma convenance

Sub formule() Dim fichier As String, onglet As String, adresse As String, chemin As String

chemin = ThisWorkbook.Path ' si différent, mettre le chemin du dossier dans lequel se trouvent les fichiers de base

onglet = "Feuil1"

  For li = 2 To 3

     For co = 4 To 12

     If Cells(1, co) <> "" Then adresse = Cells(1, co) fichier = Cells(li, 3) & ".xlsx"

     Cells(li, co).FormulaLocal = "='" & chemin & "\[" & fichier & "]" & onglet & "'!" & adresse ' on peut figer en copiant en  valeur la cellule sur elle-même

     End If

     Next

   Next

 End Sub

Bonne journée

Bravo pour votre adaptation.

Rechercher des sujets similaires à "recherche base donnees fichier"