Macro excel Vlookup
Résolu
neophyteMacro
-
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
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:
- Macro excel Vlookup
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
1 réponse
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
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
neophyteMacro
OK, merci bcp, ca marche :-)