Excel VBA Erreur Vlookup

Bonsoir,

Je suis entrain de faire un système pour gérer le stock et l'inventaire d'un magasin et je suis tombé sur une erreur.

J'ai un tableau avec pour colonnes :

  1. les Références (elles sont uniques) de chaque Produit B
  2. La Marque du Produit C
  3. Le Prix de Vente D
  4. Le Prix d'Achat E

J'ai mis une comboBox ( cmb_Produit )qui reçoit toutes les valeur de la première colonne (les Références) et une autre comboBox ( cmb_Type )pour le type de transaction (Vente/Achat). Lorsque l'utilisateur sélection dans la comboBox une référence et qu'il choisit ensuite le type de transaction, le prix de Vente devrait s'afficher (j'ai créé une case pour ça (txt_Taux)). Le problème c'est que lorsque la référence choisit contient au moins une lettre ça marche mais si la référence ne contient que des chiffre j'obtiens l'erreur suivante :

'Erreur d'exécution '10004'
Impossible de lire la propriété Vlookup de la classe WorksheetFunction"

Je précise également que lorsque j'ai fait une comparaison entre cmb_Produit et la case du tableau Excel qui contient la même valeur j'ai obtenu False ce qui je ne comprends pas puisque j'ai rempli ma comboBox avec les valeurs du tableau Excel.

Je pense par conclusion que l'erreur vient du type mais j'ai essayé plusieurs façons différentes mais j'obtiens toujours la même erreur.

Voici ce que j'ai essayé jusqu'ici:

Me.txt_Taux.Value = Application.WorksheetFunction.VLookup(Me.cmb_Produit.Value, sh.Range("B:D"), 3, 0)

Me.txt_Taux.Value = Format(Application.WorksheetFunction.VLookup(Me.cmb_Produit.Value, sh.Range("B:D"), 3, 0), "0,00") <br>

Me.txt_Taux.Value = Application.WorksheetFunction.VLookup(Me.cmb_Produit.Value & "", sh.Range("B:D"), 3, 0) <br>

Si quelqu'un a une idée je suis preneuse.

Bonsoir,

TextBox et ComboBox, ne "traitent" que de l'alphanumérique. Vous les remplissez avec du numérique, puis vous faites une recherche avec leur valeur, du coup un nombre considéré comme du texte, essayez de mettre Evaluate() ou un Cdbl(Me.cmb_Produit.Value). Vous voyez l'idée ?

@ bientôt

LouReeD

Bonsoir,

Problème résolu ! Merci pour votre réponse, je galérais depuis au moins deux jours.

Maintenant j'ai un autre problème, je pense que c'est toujours un problème de type.

J'ai créé un champs (txt_Search) pour filtrer les références des produits en fonction de ce que l'utilisateur tape dans la recherche. J'ai utilisé Autofilter comme ceci :

sh.UsedRange.AutoFilter 1, "*" & Me.txt_Search & "*"

Ça marche lorsque je tape un mot "alphanumérique" mais pas quand je ne tape que des chiffres (je n'ai pas d'erreur seulement un résultat vide). Je pense que c'est parce que je concatène avec "*" et du coup le mot tapé devient un String alors que la référence du produit est un nombre.

Je précise que ça marche lorsque j'enlève les "*", mais cela oblige l'utilisateur à taper toute la référence.

Une idée ?

Avez vous essayé avec un "iif" ?

sh.UsedRange.AutoFilter 1,  Iif(IsNumeric(Evaluate(Me.txt_Search )), Evaluate(Me.txt_Search), "*" & Me.txt_Search & "*")

Pas essayé... En gros si l'évaluation est numérique alors on recherche l'évaluation, sinon on recherche l'alphanumérique.

@ bientôt

LouReeD

Bonsoir,

Je viens d'essayer votre proposition mais ça ne marche toujours qu'avec des références alphanumérique. Comme je n'obtiens pas d'erreur, je n'arrive pas à savoir quel est le problème.

J'ai une référence "9582164a" et une autre "1000" si je tape le chiffre 1 dans la barre de recherche et que je filtre avec :

"*" & Me.txt_Search & "*"

la référence "9582164a" s'affiche mais pas l'autre. Et si je filtre avec :

Me.txt_Search

Ça marche quelle que soit la référence, mais encore une fois, c'est seulement lorsque je tape toute la référence.

Bonsoir,

je m'y suis peut-être mal pris dans la gestion du test de valeur...
Une autre proposition, on regarde si le TextBox est "double" si oui numérique sinon alpha :

sh.UsedRange.AutoFilter 1,  Iif(IsNumeric(Cdbl(Me.txt_Search )), Cdbl(Me.txt_Search), "*" & Me.txt_Search & "*")

Sinon sans votre fichier j'ai du mal pour les tests...

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba erreur vlookup"