Vlookup VBA

T

Theo

Guest
Bonjour forum!

Je souhaite lancer un VLOOKUP par VBA.
je dispose d un tableau de 4 colonnes(de A à D) et un bon millier de lignes.
La formule en XL normal serait:
(placée ds cellules en colonne B) =Vlookup(A1; G2;H500; 2; 0)

et voici mon code ki bien evidemment ne fctionne pas....

Sub test()

On Error Resume Next
For Each c In Worksheets('1').Range('B1:B1000').Cells
c.Value = Application.WorksheetFunction.VLookup(Columns('A').Value, Worksheets('1').Range('G2:H500'), 2)

Next
End Sub

En fait comme vous l avez sans doute compris mon probleme est d identifier la valeur en colonne A.

Merci pour votre aide.

A+
 

CBernardT

XLDnaute Barbatruc
Bonsoir Theo,

si j'ai bien compris, la petit modif suivante devrait suffire :

Sub test()
On Error Resume Next
For Each C In Worksheets(1).Range('B1:B1000')
C.Value = Application.WorksheetFunction.VLookup(C.Offset(0, -1).Value, Worksheets(1).Range('G2:H500'), 2)
Next
End Sub

Cordialement

Bernard
 

madlolo

XLDnaute Junior
Re : Vlookup VBA

Bonjour à tous,

j'ai un problème similaire où, dans un programme VBA, je dois tester si une valeur existe dans une liste présente dans une feuille Excel :

Code:
If Not IsError(VLookup(maDonnee, Worksheets("To_Follow").Range("A2:C40"), 2, False)) Then

...

End If

Or, l'erreur est : "Erreur de compilation:
Sub ou Function non définie"

J'essaye alors autrement, en rajoutant
Code:
Application.WorksheetFunction.
devant "VLookup", l'erreur est : "Erreur d'exécution '1004':
Impossible de lire la propriété VLookup de la classe WorksheetFunction"

J'avoue ne pas comprendre comment on peut utiliser des formules qu'Excel popose par défaut dans VBA ...

Comment résoudre ce problème ?

Très cordialement,
 

madlolo

XLDnaute Junior
Re : Vlookup VBA

pour plus de précision, voilà l'erreur que j'ai avec "WorksheetFunction.VLookup(..." : "Erreur d'exécution '1004':
Impossible de lire la propriété VLookup de la classe WorksheetFunction" :mad:

Idem avec "Application.WorksheetFunction.VLookup(..." :mad:

Avec simplement "VLookup(...", j'ai l'erreur suivante : "Erreur de compilation:
Sub ou Function non définie" :mad:

Mais bon, sang, il n'est pas possible d'utiliser les fonctions Excel dans un programme VBA ?!? :confused:
 

pierrejean

XLDnaute Barbatruc
Re : Vlookup VBA

Bonjour madlolo

Voici un fichier test avec quelque chose qui ressemble a ce que tu cherches
 

Pièces jointes

  • recherchv_vba.zip
    6.2 KB · Affichages: 2 937
  • recherchv_vba.zip
    6.2 KB · Affichages: 2 881
  • recherchv_vba.zip
    6.2 KB · Affichages: 2 930

madlolo

XLDnaute Junior
Re : Vlookup VBA

Merci de ta réponse, mais pour une raison que j'ignore, ce code génère quand même une erreur chez moi ! :confused:

Par contre, ça marche avec le code suivant :
Code:
If Not IsError(Application.VLookup(maDonnee, Worksheets("To_Follow").Range("A2:C40"), 2, False)) Then
...
End If
:)
C'est à dire en enlevant "WorksheetFunction" alors que partout on écrit qu'il faut préciser "WorksheetFunction" :confused:

Bon, encore une bizarrerie d'Excel / VBA ... peut être un problème de configuration ?
 

lema

XLDnaute Nouveau
Re : Vlookup VBA

Bonjour à tous,

J'ai vraiment besoin de votre aide !!
Je n'y connais rien en VBA :( !!!
et je dois transcrire une Formule recherchev en VBA!!
C'est dans le cadre de mon travail et là ça fait plus de deux jours que je galère.
Je ne sais même pas par quel bout commencer!!
Si vous pouvez juste m'orienter ou me donner le code !! cela serai vraiment genial!!
Voici la formule =RECHERCHEV(A2:A68;'Balance unallocated à updater'!A1:J62;10;0)
D'avancee pour votre aide!!
 

lema

XLDnaute Nouveau
Re : Vlookup VBA

Bonjour à tous,

J'ai vraiment besoin de votre aide !!
Je n'y connais rien en VBA :( !!!
et je dois transcrire une Formule recherchev en VBA!!
C'est dans le cadre de mon travail et là ça fait plus de deux jours que je galère.
Je ne sais même pas par quel bout commencer!!
Si vous pouvez juste m'orienter ou me donner le code !! cela serai vraiment genial!!
Voici la formule =RECHERCHEV(A2:A68;'Balance unallocated à updater'!A1:J62;10;0)
D'avancee pour votre aide!!

Re bonjour encore moi, j'ai essayé d'écrire ce code là, mais comme vous pouvez le deviner ça ne marche pas :(

Sub TEST()
On Error Resume Next
For Each C In Worksheets("wire à envoyer").Range("P1:p600").Cells
C.Value = Application.WorksheetFunction.VLookup(Columns("A1:A600"), Value, Worksheets("Balance unallocated a updater").Range("a1:j62"), 10)
Next
End Sub
 

solonath

XLDnaute Nouveau
Re : Re:Vlookup VBA

Bonsoir Theo,

si j'ai bien compris, la petit modif suivante devrait suffire :

Sub test()
On Error Resume Next
For Each C In Worksheets(1).Range('B1:B1000')
C.Value = Application.WorksheetFunction.VLookup(C.Offset(0, -1).Value, Worksheets(1).Range('G2:H500'), 2)
Next
End Sub

Cordialement

Bernard

Bonjour,

C'est exactement ce que je cherchais depuis longtemps pour utiliser des variables définies par ailleurs et contourner les références R[]C[].

Merci !
 

agadio

XLDnaute Nouveau
Re : Vlookup VBA

Bonjour

j'ai un message d'erreur "Expression attendue" avec ce code :

Cells(Li, 33).Value = If IsError(Application.VLookup(ComboBox15.Value, Sheets("BDD").Range("B1:C500"), 2, "")) Then Cells(Li, 33).Value="" Else Cells(Li, 33).Value=Application.VLookup(ComboBox15.Value, Sheets("BDD").Range("B1:C500"), 2, "")

L'idée est de determiner la valeur d'une cellule (ici Li,33) en fonction d'une liste avec un "recherchev" et si erreur alors on laisse la cellule vide

Je n'arrive pas a trouver mon erreur.

Merci de votre aide
Fichier dispo si besoin bien sur !
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 178
Membres
103 152
dernier inscrit
Karibu