Pb avec VLookup

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. 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