Pb avec VLookup

agadio31 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
agadio31 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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 !

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

pourquoi utiliser Vlookup ? il y a des fonctions VBA pour effectuer des recherches comme Find par exemple...


Dim cellule As Range

With Sheets("BDD")
If Application.CountIf(.Columns("B"), combobox15.Value) > 0 Then
Set cellule = .Columns("B").Find(valeur, .Range("B" & .Cells.Rows.Count), xlValues)
ActiveSheet.Cells(li, 33) = cellule.Offset(0, 1)
Else
ActiveSheet.Cells(li, 33) = ""
End If
End With


 Michel
0
agadio31 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel

Je ne connais pas cette fonction. J'ai donc cherché (merci G....e !)

du coup le code donnerait ceci :

Dim Li33 as Variant

On Error Resume Next
Li33 = [Sheets("BDD").Range("B1:C500")].Find(What:=ComboBox15.Value, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address

If Not Li33 = '' Then Cells(Li, 33).Value=Li33
End if

J'ai testé mais .... !!!!

Un bon conseil est le bienvenu
Merci
0