VLOOK UP + filtre des resultats

Bonjour,

J'ai créé une macro avec une fonction vlook up qui va chercher des informations depuis un fichier source qui est un tableu excel vers un fichier de destination.

La macro fonctionne très bien sauf que la valeur recherchée peu renvoyer plusieurs resultats (car dans le tableau source une même valeur est associée a plusieurs lignes)

Je voudrai pourvoir eliminer d'office certaines lignes du tableau source pour que le vlook up ignore ces lignes eliminées et donc ne les inclut pas dans le resultat de recherche.

Un exemple très parlant en pj.

Merci d'avance pour vos conseils !

22exemple.xlsx (13.14 Ko)

Bonjour et bienvenue sur le forum

Tarikabir a écrit :

J'ai créé une macro avec une fonction vlook up qui va chercher des informations;;;

Peut-on voir cette macro ? Tu as joint un fichier en .xlsx, donc sans macro...

Bye !

bonjour gmb,

Voici un extrait du code en question :

With Workbooks(fichierdestination).Sheets("Feuil1")

For i = 2 To 3000

.Cells(i, 10) = WorksheetFunction.vlookup(.Cells(i, 9), Workbooks(fichiersource & ".xlsx").Sheets("Feuil1").Range("B1:T2000"), 9, False)

Next

End With

Le resultat de la recherche s'affiche dans "fichier destination" le fichier source est l'exemple en pj d'ou proviennent les données.

Merci

Un essai à tester, si j'ai bien compris.

Bye !

7desktop.zip (42.13 Ko)

Hello gmb,

Sur le fond c'est impeccable, ta macro répond parfaitement au filtres. Ton code est propre

Sur la forme je ne pourrais pas l'adapter au mon analyse.

initialement ma macro va chercher la valeur dans le fichier source et l'envoie vers le fichier destinataire, la suite de la macro fait un rapprochement entre les resultats post recherche et les données déja existentes dans le fichier source que je recoit chaque jour.

j'ai essayé avec une formule du genre

With Workbooks(fichierdestination).Sheets("Feuil1")
For i = 2 To 3000
while//If  Workbooks(fichiersource & ".xlsx").Sheets("Feuil1").Range("B1:T2000")range("C"& i)<>"PP" Or range ("E"& i)="INTEREST" then
 .Cells(i, 10) = WorksheetFunction.vlookup(.Cells(i, 9), Workbooks(fichiersource & ".xlsx").Sheets("Feuil1").Range("B1:T2000"), 9, False)
Next
Wend
End With

Mais ca ne fonctionne pas, qu'en penses-tu ?

Merci d'avoir pris le temps de repondre et surtout d'écrire ce code !!

Tarik

Precisions ;

Le code recherché n'est pas unique il peut y en avoir jusqu'a 300 differents en une journée d'ou le recours a une fonction vlook up

Pour essayer d'aller plus loin, il me faudrait

* un exemple de fichier source

* un exemple de fichier destination avec un exemple de ce que tu veux y voir

* le fichier où tu veux ton code

Et quand tu écris :

Le code recherché n'est pas unique il peut y en avoir jusqu'a 300 differents en une journée

Là, tu me fais peur !

Bye !

Bonjour

Je considère comme un non sens d'utiliser VLOOKUP en VBA sauf si la formule doit être copiée dans une cellule.

Pour ce que tu veux faire il y a le filtre élaboré où on précise tous les critères et qui est très efficace.

hello gmb,

voici un exemple des 2 fichiers comme demandé.

merci.

T

11exemple2.xlsm (46.62 Ko)

hello,

c'est bon j'ai trouvé en ajoutant range("A2:T2000") apres with workbook(X).sheets(Y)

et en remplacant cells par range !

Tarik

Rechercher des sujets similaires à "vlook filtre resultats"