RechercheV sur un fichier externe sans connaitre completement le nom du classeur

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 !

Sophie11

XLDnaute Occasionnel
Bonjour,

Pouvez-vous m'indiquer le code pour effectuer un rechercheV de donnée dont le tableau a chercher se situe dans un autre classeur.

Ce classeur est ouvert mais change de nom régulierement sauf le début.

Exemple:
Soit 2 classeurs ouvert :

data_a_chercher_XXXX.xls (XXXX change regulierement)
fichier_principal.xls


je travaille sur fichier_principal.xls et je sous effectuer un recherchev dont les données à chercher sont sur data_a_chercher_XXXX.xls
Je voudrais savoir si il est possible de faire une recherche en connaissant simplement le début du nom du fichier à chercher => data_a_chercher_*.xls

merci d'avance

Sophie
 
Re : RechercheV sur un fichier externe sans connaitre completement le nom du classeur

Bonsoir Sophie,
Voir PJ,
@ l'aide d'une Macro XL4 on peut avoir tout les classeurs ouverts...
et @ l'aide de la fonction INDIRECT() on peut choisir le classeur sur lequel on va faire la recherche
Amicalement
 

Pièces jointes

Re : RechercheV sur un fichier externe sans connaitre completement le nom du classeur

Bonjour Sophie11, R@chid,

Voyez les fichiers joints avec cette fonction macro :

Code:
Function RECH(fichier$, Feuil$, col1, col2, valeur)
Dim wb As Workbook, lig As Variant
For Each wb In Workbooks
  If fichier <> "" And wb.Name Like fichier & "*" Then Exit For
Next
If wb Is Nothing Then RECH = "Fichier ??": Exit Function
On Error Resume Next
If IsError(wb.Sheets(Feuil)) Then RECH = "Feuille ??": Exit Function
If Not Val(col1) Then col1 = CStr(col1)
If Not Val(col2) Then col2 = CStr(col2)
If IsError(wb.Sheets(Feuil).Columns(col1)) Or _
  IsError(wb.Sheets(Feuil).Columns(col2)) Then _
  RECH = "Colonne ??": Exit Function
lig = Application.Match(valeur, wb.Sheets(Feuil).Columns(col1), 0)
If IsError(lig) Then RECH = lig: Exit Function
RECH = wb.Sheets(Feuil).Cells(lig, Columns(col2).Column)
End Function
A+
 

Pièces jointes

Re : RechercheV sur un fichier externe sans connaitre completement le nom du classeur

Re,

Si le tableau où se fait la recherche est nommé c'est plus simple :

Code:
Function RECH(fichier$, tablo$, col%, valeur)
Dim wb As Workbook, t
For Each wb In Workbooks
  If fichier <> "" And wb.Name Like fichier & "*" Then Exit For
Next
If wb Is Nothing Then RECH = "Fichier ??": Exit Function
On Error Resume Next
If IsError(wb.Names(tablo)) Then RECH = "Tableau ??": Exit Function
t = Evaluate("'" & wb.Name & "'!" & tablo)
RECH = Application.VLookup(valeur, t, col, 0)
End Function
Fichiers (2).

A+
 

Pièces jointes

Re : RechercheV sur un fichier externe sans connaitre completement le nom du classeur

Re,

Pour que la fonction ressemble à RECHERCHEV, je l'ai renommée et mis l'argument valeur au début :

Code:
Function RECHV(valeur, fichier$, tablo$, col%)
Fichiers (3).

A+
 

Pièces jointes

- 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