VBA - Erreur si vlookup ne trouve pas la valeur

Bonjour le forum,

Je bloque sur une macro vba, je cherche à faire un vlookup d'une valeur indiquée depuis une textbox dans un tableau.

Private Sub CommandButton1_Click()

    Dim sku As String
    sku = TextBox1.Value

    If Application.VLookup(sku, Sheets("data").Range("A:A"), 1, False) < 0 Then

        MsgBox ("valeur introuvable")

    Else

        Label2 = Application.VLookup(sku, Sheets("data").Range("A:j"), 2, False)
        Label3 = Application.VLookup(sku, Sheets("data").Range("A:j"), 4, False)
        Label4 = Application.VLookup(sku, Sheets("data").Range("A:j"), 5, False)
        Label11 = Application.VLookup(sku, Sheets("data").Range("A:j"), 9, False)
        Label13 = Application.VLookup(sku, Sheets("data").Range("A:j"), 10, False)

    End If

End Sub

Si la valeur est correct, mes label se remplissent convenablement, mais si la valeur dans la textbox n'est pas connue du VlookUp je n'ai pas mon msgbox valeur introuvable comme paramétrer mais une erreur incompatibilité de type.

Si quelqu'un aurait une solution ;)

Merci d'avance pour vos réponses.

Bonjour Sanctune

On conseille toujours de passer par des variables

Ainsi on teste la variable comme on le souhaite

  Dim ValFind As Variant
  Dim sku As String

  sku = TextBox1.Value
  ValFind = Application.VLookup(sku, Sheets("data").Range("A:A"), 1, False)

  If IsError(ValFind) Then
    MsgBox ("valeur introuvable")
  Else
    Label2 = Application.VLookup(sku, Sheets("data").Range("A:j"), 2, False)
    Label3 = Application.VLookup(sku, Sheets("data").Range("A:j"), 4, False)
    Label4 = Application.VLookup(sku, Sheets("data").Range("A:j"), 5, False)
    Label11 = Application.VLookup(sku, Sheets("data").Range("A:j"), 9, False)
    Label13 = Application.VLookup(sku, Sheets("data").Range("A:j"), 10, False)
  End If

A+

Bonjour Bruno,

Génial merci beaucoup pour la soluce et les conseils ;)

Rechercher des sujets similaires à "vba erreur vlookup trouve pas valeur"