VBA - Vlookup sur fichier variable ???

  • Initiateur de la discussion Initiateur de la discussion La braise
  • Date de début Date de début

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 !

La braise

XLDnaute Occasionnel
Bonjour à Tous,

Dans une macro je défini un fichier de mapping, j'ouvre ce fichier et je nomme une plage : plage_clients afin d'effectuer dessus des Vlookup.

Workbooks.Open Filename:=Repertoire_MappingClients & Fichier_MappingClients
Set Plage_Clients = Range("A1").CurrentRegion
ActiveWorkbook.Names.Add Name:="Plage_Clients", RefersTo:=Plage_Clients​


Ce fichier de mapping ne se compose que d'un seul onglet "hiérarchie".

Lorsque je lance le VLookup :

Windows(Fichier_Source).Activate
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,Fichier_MappingClients!Plage_Clients,2,0)"​

la macro plante et m'ouvre une fenêtre d'explorateur pour lui indiquer le fichier (alors que celui-ci est ouvert 😡)

Comment écrire la condition suivante :

VLOOKUP(RC1,Fichier_MappingClients - Hiérarchie!Plage_Clients,2,0)

Je pense qu'il faut indiquer l'onglet de référence ("hiérarchie") dans ma formule mais je n'y arrive pas.😕

J'ai essayé comme ça :
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,'[Fichier_MappingClients]Hiérarchie!Plage_Clients,2,0)"
Mais cela ne fonctionne pas du tout.

Je précise que la formule fonctionne avec le nom complet du fichier! 🙂

D'avance merci pour votre aide car je bloque sur cette question toute bête à mon avis.
 
Dernière édition:
Re : VBA - Vlookup sur fichier variable ???

Bonjour La braise, bonjour à toutes et à tous 🙂

La braise à dit:
Workbooks.Open Filename:=Repertoire_MappingClients & Fichier_MappingClients
Set Plage_Clients = Range("A1").CurrentRegion
ActiveWorkbook.Names.Add Name:="Plage_Clients", RefersTo:=Plage_Clients​

Ce fichier de mapping ne se compose que d'un seul onglet "hiérarchie".

Lorsque je lance le VLookup :

Windows(Fichier_Source).Activate
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC1,Fichier_MappingClients!Plage_Clients,2,0)"​

Essaie ceci et tiens-nous au courant 🙂

Code:
ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC1," & Fichier_MappingClients & "!Plage_Clients,2,0)"

Je pense que cela devrait fonctionner. To be continued... 😉

@+

EDIT : Naturellement, si ton fichier est fermé, il faudra mettre le chemin d'accès complet.
 
Dernière édition:
Re : VBA - Vlookup sur fichier variable ???

Bonjour nolich,

J'ai essayé ton code mais j'ai toujours le même pbm. 😕

Ouverture de fenêtre explorateur "Mettre à jour les valeurs".

La formule copiée dans la cellule est bien :
=RECHERCHEV($A2;Mapping clients.xlsx!Plage_Clients;2;0)

mais celle que je voudrais est :
=VLOOKUP(RC1,'[Mapping clients.xlsx]Hiérarchie!Plage_Clients,2,0)

PS : le fichier est bien ouvert et est fermé après les recherchev.

D'avance merci.
 
Re : VBA - Vlookup sur fichier variable ???

Re,

Je suis confused aussi 🙂

J'ai essayé ton code mais j'ai toujours le même pbm. 😕

Ouverture de fenêtre explorateur "Mettre à jour les valeurs".

La formule copiée dans la cellule est bien :
=RECHERCHEV($A2;Mapping clients.xlsx!Plage_Clients;2;0)

mais celle que je voudrais est :
=VLOOKUP(RC1,'[Mapping clients.xlsx]Hiérarchie!Plage_Clients,2,0)

PS : le fichier est bien ouvert et est fermé après les recherchev.

Une plage nommée est valable pour un fichier, surtout s'il n'a qu'une feuille de calcul. Par contre, je ne savais pas qu'il y avait des espaces dans le nom de ton fichier. Essaie ceci :

"=VLOOKUP(RC1,'" & Fichier_MappingClients & "'!Plage_Clients,2,0)"

c'est-à-dire avec un guillement simple ' supplémentaire.

Si tu veux absolument avoir la formule avec :

'[Mapping clients.xlsx]Hiérarchie!Plage_Clients

alors tu peux écrire :

"=VLOOKUP(RC1,'[" & Fichier_MappingClients & "]Hiérarchie'!Plage_Clients,2,0)"

J'espère que cela t'aideras, à défaut de solutionner ton problème, du moins à l'isoler...

@+

PS : Si tu n'y parviens pas, joins-nous des fichiers exemples (sans données confidentielles) afin que nous puissions t'aider au mieux 🙂
 
Re : VBA - Vlookup sur fichier variable ???

Re,

Le pbm venait du fait que le nom de fichier contenait des espaces?

Eh oui ! Lorsqu'un fichier, ou même une feuille suivant le type de formule, contient des espaces, il faut l'entourer d'apostrophes, sinon XL ne comprend pas. Tu sais, XL est bête, il ne fait que ce qu'on lui demande, à condition d'utiliser des instructions qu'il comprend 😉

Je suis heureux d'avoir pu t'aider 🙂. on va quand même pas se laisser faire par une machine !!! 😉

@+
 
Re : VBA - Vlookup sur fichier variable ???

Bonjour à tous,

je remonte mon post pour une demande supplémentaire.

dans la formule :
"=VLOOKUP(RC1,'[" & Fichier_MappingClients & "]Hiérarchie'!Plage_Clients,2,0)"

je souhaite rendre varaible le nom de l'onglet.

comment écrire cette formule en remplaçant Hiérerchie par la varaible nomOnglet?

je cherche en vain depuis 2 h...

D'avance merci pour votre aide.


PS : je précise que certains onglet on un nom qui contient un espace...
 
- 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
Retour