Macro excel Vlookup

Résolu/Fermé
neophyteMacro - 17 mars 2009 à 11:17
 neophyteMacro - 18 mars 2009 à 11:04
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 mars 2009 à 11:27
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
18 mars 2009 à 11:04
OK, merci bcp, ca marche :-)
0