Macro excel Vlookup

Résolu
neophyteMacro -  
 neophyteMacro -
Bonjour,

J'ai créé une macro qui cherche une valeur dans un tableau grâce à la fonction VLookup. Voici ma procédure :

Sub ObtenirUnPrix()
Dim Cellule As Range
For Each Cellule In Selection
If Cellule.Value > 0 Then Cellule.Offset(0, 1).Value = _
WorksheetFunction.VLookup(Cellule.Value, Range("ListePrix"), 2, False)
Next Cellule
End Sub

Tout marche bien, sauf quand je cherche une valeur qui n'existe pas dans le tableau. Dans ce cas le #N/A qu'on obtient dans excel, sans passer par une macro, retourne une erreur 1004 : "Unable to get the VLookup propoerty of the Worksheet function class".
J'ai essayé d'imbriquer avec d'autre fonctions, par exemple :

If Cellule.Value > 0 Then Cellule.Offset(0, 1).Value = _
WorksheetFunction.IsNA(WorksheetFunction.VLookup(Cellule.Value, Range("ListePrix"), 2, False))

mais ça retourne tjrs cette erreur bloquante. Avez-vous la solution ?

Merci
A voir également:

1 réponse

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

essaies
On error resume next
If Cellule.Value > 0 Then Cellule.Offset(0, 1).Value = _
WorksheetFunction.VLookup(Cellule.Value, Range("ListePrix"), 2, False)
if err.number>0 then
Msgbox "valeur inconnue dans liste des prix"
exit sub
end if
on error goto 0
... suite de ton code

Tu peux perfectionner dans le Msgbox en demandant si on continuer avec un bouton vbYesno... pour éviter de sortir de la macro à la 1° erreur
2
neophyteMacro
 
OK, merci bcp, ca marche :-)
0