Vlookup dans fichier fermé

Tout d'abord bonjour à tous !

Jeune praticien du VBA, je sors tout juste d'une formation professionnelle et je me lance dans la rédaction d'une procédure pour mon travail.

Je cherche a faire un vlookup sur un fichier fermé. Je vous copie/colle le code ici car je ne sais pas trop exposer un exemple du fait que j'ai 2 variables dans le fichier.

Je m'explique

(FilePath) étant le fichier sur lequel le résultat du Vlookup doit s'afficher

(FilePrevious) étant le fichier sur lequel le vlookup ira chercher les valeurs à affecter.

_ Etape 1 : dans mon classeur (FilePath) qui est ouvert, il va ajouter une colonne et effectuer un concatenage

_ Etape 2 : sur la base du concatenage, il ira chercher la valeur correspondante dans le (FilePrevious)

Donc tout marche correctement sauf qu'il me demande à chaque Vlookup d'aller chercher le classeur fermé.

Etant donné qu'il a le nom, son chemin etc... pourquoi dois je lui redonner à chaque fois manuellement ?

D'après mes premières recherches, cela n'a pas l'air aisé... ne sachant pas ou poser ma question je me dirige vers vous

En tout cas, merci pour votre aide ! j'espere également (qui sait?) en apporter à qq'un ici maintenant que je prends place sur votre forum.

(ps : je peux voir pour créer un exemple si le code ne parle pas trop et qu'un exemple est la meilleur manière pour m'aider)

Windows(FilePath).Activate

'ajout colonne pour concatenate

Columns("B:B").Select

Selection.Insert Shift:=xlToRight

Range("B1") = "Conca"

Range("K1") = "Commentaire 1"

Range("L1") = "Commentaire 2"

Range("A1").Select

Do While ActiveCell.Value <> ""

If ActiveCell.Offset(0, 1) = "" Then

ActiveCell.Offset(0, 1) = "=CONCATENATE(RC[1],RC[7])"

ActiveCell.Offset(0, 10) = "=VLOOKUP(RC[-9],'[Fileprevious]Sheet1'!C2:C11,10,FALSE)"

ActiveCell.Offset(0, 11) = "=VLOOKUP(RC[-10],'[Fileprevious]Sheet1'!C2:C11,10,FALSE)"

End If

Selection.Offset(1, 0).Select

Loop

Bonjour et bienvenue sur le forum,

je crois que tu fais une erreur de syntaxe avec ta variable FilePrevious

ActiveCell.Offset(0, 10) = "=VLOOKUP(RC[-9],'[" & FilePrevious & "]Sheet1'!C2:C11,10,FALSE)"
ActiveCell.Offset(0, 11) = "=VLOOKUP(RC[-10],'[" & FilePrevious & "]Sheet1'!C2:C11,10,FALSE)"

Merci beaucoup pour ta réponse !!

J'ai modifié le code, effectivement il ne cherche plus le (FilePrevious) mais il me demande tjrs de lui retrouver le fichier (qui porte cette fois ci le bon nom)

il ne veut pas faire le vlookup tout seul comme un grand

-- 11 Mai 2010, 15:03 --

Correction, ca marche si le fichier à "vlookupé" c-a-d le (FilePrevious) est ouvert sur mon desktop.

En revanche, nada si celui-ci est fermé

au début de ta macro, ajoute la ligne

Application.Screenupdating = False

et ensuite ouvre le classeur FilePrevious, poursuit avec ton code et à la fin ferme le classeur FilePrevious et remet Screenupdating = True.

yes ! j'utilise beaucoup ce Application.Screenupdating = False il est en début de code

et très bonne idée, je vais lui demander d'ouvrir le fichier et de le refermer ensuite !

test effectué : ca marche très bien merci !!!

Rechercher des sujets similaires à "vlookup fichier ferme"