Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…