Pb avec VLookup

Fermé
agadio31 Messages postés 9 Date d'inscription jeudi 3 décembre 2015 Statut Membre Dernière intervention 1 juin 2016 - 31 mai 2016 à 08:53
agadio31 Messages postés 9 Date d'inscription jeudi 3 décembre 2015 Statut Membre Dernière intervention 1 juin 2016 - 31 mai 2016 à 14:53
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 31/05/2016 à 11:59
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 jeudi 3 décembre 2015 Statut Membre Dernière intervention 1 juin 2016
31 mai 2016 à 14:53
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