Partage
  • Partager sur Facebook
  • Partager sur Twitter

Excel VBA Erreur Vlookup

Sujet résolu
    3 octobre 2020 à 20:54:01

    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")
    
    Me.txt_Taux.Value = Application.WorksheetFunction.VLookup(Me.cmb_Produit.Value & "", sh.Range("B:D"), 3, 0)


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

    -
    Edité par mariane01 3 octobre 2020 à 20:56:05

    • Partager sur Facebook
    • Partager sur Twitter
      5 octobre 2020 à 15:35:23

      c'est que quand une valeur est un nombre, il est traité comme un nombre et non comme du texte. Il faut forcer à la lire comme du texte en utilisant par exemple la fonction CStr(), ou en utilisant la propriété Text du combobox
      Me.txt_Taux.Value = Application.WorksheetFunction.VLookup(CStr(Me.cmb_Produit.Value), sh.Range("B:D"), 3, 0)
      //ou
      Me.txt_Taux.Value = Application.WorksheetFunction.VLookup(Me.cmb_Produit.Text, sh.Range("B:D"), 3, 0)
      
      • Partager sur Facebook
      • Partager sur Twitter
        16 octobre 2020 à 19:28:00

        Problème résolu  ! Merci beaucoup :)
        • Partager sur Facebook
        • Partager sur Twitter

        Excel VBA Erreur Vlookup

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown