[VBA] Probleme fonction VLookup

Résolu
Bonjour,

J'ai un petit probleme avec la fonction VLookup de vba je ne comprend pas pourquoi elle me renvoi l'erreur 2042...

voici le code de la macro
Private Sub ComboBox1_Change()
    Dim R As Variant
 R=Application.VLookup(ComboBox1.value,Worksheets("annexe").Range("B4:P23"), 13, False)
    Label16.Caption = R
End Sub


la valeur de la combobox est X38

la feuille annexe correspond a un tableau de valeur que je vais vous réduire

colonne B : X38
C24
B78

colonne M(13) : 21000
42000
53000

En attendent vos réponse, merci d'avance

9 réponses

  1. Bonjour,

    je me permet de revenir vers vous car meme en mettant la bonne colonne (la C)

    resultat = Cells(Columns("C").Find(valeur, Range("C5"), xlValues).Row, "M")
    


    j'ai une erreur 91 variable objet ou variable bloc with non définit...
    0
    1. oups désole cette feuille est un copié coller d'un autre classeur et j'ai décaler les colonnes et je n'avais pas la bonne feuille sous les yeux

      toutes mes excuses votre formule marche

      Merci beaucoup
      0
      1. Contributeur
        Dis donc, fais tu attention à ce que tu écris ?
        tu écris:
        colonne B : X38

        regarde donc ce qu'il y a dans la colonne B....

        Pas très sérieux ni sympa

        ciao
        0
        1. on est sur que la valeur est connu dans le tableau car les valeurs de la combobox sort de ce meme tableau

          j'ai donc pris la premiere solution

          Dim valeur
              Dim resultat
              valeur = ComboBox1.value
              resultat = Cells(Columns("B").Find(valeur, Range("B3"), xlValues).Row, "M")
              MsgBox (resultat)
          


          il m'écrit une erreur 92 variable objet ou variable bloc with non définit...
          0
          1. Contributeur
            heu, excuse moi.... B2 au lieu de B3
            resultat = Cells(Columns("B").Find(valeur, Range("B2"), xlValues).Row, "M")

            si ca ne marche pas
            mettre un extrait du classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
            https://www.cjoint.com/
            et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
            0
        2. Contributeur
          bon va procéder autrement....
          en supposant que la valeur du combo est incluse dans le tableau
          valeur=combobox1.Value
          resultat=cells(columns("B").find(valeur,range(B3"),xlvalues).row,"M")

          si on n'est pas sûr que la valeur ext dans B3:B23
          if application.countif(range("B3:B23"),valeur)>0 then
              resultat=cells(columns("B").find(valeur,range(B3"),xlvalues).row,"M")
          else 
               Msgbox valeur & "inconue, vbcritical
          End if

          0
          1. merci de vos réponse mais je ne sais pas ce que me dit l'erreur il y a seulement marquer erreur 2042

            et si je fais ce que tu m'a demandé pijaku j'ai l'erreur 1004 impossible de lire la propriété VLookup de la class WorksheetFunction...
            0
            1. Modérateur
              Salut,
              Au lieu de Application.VlookUp essaye :
              Application. WorksheetFunction.VLookup(Valeur, Plage, Colonne, False)
              peut être que...
              0
              1. Contributeur
                Bonjour,

                Et que dit l'erreur 2042 ?
                0