Message d'erreur quand pas de résultat dans la VLookup

Gwendoline

XLDnaute Junior
Bonsoir tout le monde,

J'ai lancé une recherche VLookup dans ma VBA. J'ai réussi, je progresse, je n'y crois pas. :D
Elle marche très bien quand elle trouve un résultat.
Mais quand il n'y a pas de résultat, on me demande le débogage. :(

J'aimerais s'il n'y a pas de résultat dans la recherche, que ma fonction me dise "désolé mais 0 résultat" et me permette de recommencer car cela peut-être une erreur de frappe. Vous me suivez? Je peux être compliquée des fois :confused:

Voici ma VBA :

id_user = InputBox("Merci de vous identifier avec votre code User " & Chr(10) & "(Exemple : mxc3105)", _
"IDENTIFICATION DE LA JOUEUSE")


demandeur = WorksheetFunction.VLookup(id_user, Range("Users"), 2, False) & Chr(32) _
& WorksheetFunction.VLookup(id_user, Range("Users"), 3, False)

Et la si c'est faux, False...

Merci par avance!
 

Pierrot93

XLDnaute Barbatruc
Re : Message d'erreur quand pas de résultat dans la VLookup

Bonjour,

le mieux serait peut être d'utiliser la méthode "Find" native dans vba. Te permettra de vérifier si la valeur est trouvée, si c'est le cas, avec la propriété "Offset" du obtiendras ton décalage....

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Message d'erreur quand pas de résultat dans la VLookup

Re,

Ma formule n'est pas correcte?
je disais tout simplement qu'il me paraissait plus logique d'utiliser une méthode native dans vba plutôt que les fonctions de feuille de calcul... ceci te permettrait de gérer plus facilement le fait que la valeur recherchée ne soit pas trouvée... enfin c'est juste mon avis...
 

Pierrot93

XLDnaute Barbatruc
Re : Message d'erreur quand pas de résultat dans la VLookup

Re,

en utilisant "Find"..et en testant que la valeur soit bien trouvée... :
Code:
Option Explicit
Sub test()
Dim id_user As String, demandeur As String, x As Range
id_user = InputBox("Merci de vous identifier avec votre code User " & Chr(10) & "(Exemple : mxc3105)", _
    "IDENTIFICATION DE LA JOUEUSE")
Set x = Range("Users").Find(id_user, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then demandeur = x.Offset(0, 1) & Chr(32) & x.Offset(0, 2)
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 366
Membres
102 874
dernier inscrit
Petro2611