Pb avec VLookup

agadio31 Messages postés 10 Statut Membre -  
agadio31 Messages postés 10 Statut Membre -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. agadio31 Messages postés 10 Statut Membre
     
    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