Salut J'ai 2 ListBox (Purchase_Select_Debtor) & (Purchase_Select_Quantity) sur un Userform avec un txtBox pour le prix (txtPrice).Besoin d'aide en utilisant INDEX et MATCH avec une plage dynamique nommée
Le code utilise Index et Match pour renvoyer un résultat basé sur le débiteur et la quantité sélectionnée. Ci-dessous est mon code actuel qui fonctionne bien, mais chaque fois que j'ajoute un nouveau débiteur, je dois modifier le code pour changer la gamme physique.
Je voudrais le configurer en utilisant des plages nommées dynamiques afin que j'ajoute de nouveaux débiteurs la fonction Index/Match retournera toujours un résultat.
Temp = Application.Index(Sheets("Price_list").Range("A1:I22"), _
Application.Match(Purchase_Select_Debtor.Value, Sheets("Price_list").Range("A1:A22"), 0), _
Application.Match(Purchase_Select_Quantity.Value, Sheets("Price_list").Range("A1:I1"), 0))
txtPrice.Value = FormatCurrency(Expression:=Temp, _
NumDigitsAfterDecimal:=2)
J'ai essayé mais cela n'a pas fonctionné; Type Missmatch Durée d'exécution Erreur 13
Temp = Application.Index(Range("Price_list_Table"), _
Application.Match(Purchase_Select_Debtor.Value, Range("Price_list_Debtor_ADD"), 0), _
Application.Match(Purchase_Select_Quantity.Value, Range("Price_list_Quantity_ADD"), 0))
txtPrice.Value = FormatCurrency(Expression:=Temp, _
NumDigitsAfterDecimal:=2)
Le débogueur met en évidence ces 2 lignes de code;
txtPrice.Value = FormatCurrency(Expression:=Temp, _
NumDigitsAfterDecimal:=2)
La valeur de Temp = ""
Le tableau qu'il utilise comme refrence est ce;
http://i19.photobucket.com/albums/b152/mantricorb/Chart.jpg
Et les plages nommées dynamiques sont les suivantes;
Price_list_Table = OFFSET (Price_list $ A $ 1,0,0, COUNTA (Price_list $ A:! $ A), 9)!
Price_list_Debtor_ADD = OFFSET (Price_list $ A $ 1,0,0 , COUNTA (Price_list $ A: $ A), 1)
Price_list_Quantity_ADD = OFFSET (Price_list $ A $ 1: $ I 1,0,0 $)
Je suppose qu'il ya quelque chose de mal avec la dynamique Named Ranges car il ne renvoie pas de résultat, toute aide sera grandement appréciée.