VBA - Erreur si vlookup ne trouve pas la valeur
S
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 SubSi 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.
Invité
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 IfA+
S
Bonjour Bruno,
Génial merci beaucoup pour la soluce et les conseils ;)