2010-10-17 10 views
0

J'ai écrit une formule dans Excel qui résume des éléments dans 1 colonne (texte) la colonne est une plage dynamique nommée (Invoice_list_Item) la formule définit une valeur (de mon choix) En fonction de chaque élément de la plage et de la somme de ces valeurs, j'utilise maintenant un formulaire utilisateur où je souhaite afficher cette équation plutôt que dans le classeur lui-même, donc mon problème est que chaque fois que j'écris ce code dans le formulaire utilisateur fonctionne, soit en lançant une erreur, soit en n'affichant pas de valeur.J'ai essayé Application.Sum, Application.Sumif, Application.Sumproduct et le principal que j'ai essayé de faire fonctionner Application.Sum (If (Range (Problème lors de l'utilisation de SUM (If (plutôt que SumIf (

Toute aide dans la correction de cette formule dans une macro sera très appréciée

=SUM(IF(Invoice_list_Item="1/4 Item",0.25,0)+IF(Invoice_list_Item="1/2 Item",0.5,0)+IF(Invoice_list_Item="1 Item",1,0)) 

Répondre

2

Vous pouvez utiliser Application.Evaluate (cela fonctionne pour les formules de tableau) pour évaluer une chaîne comme si elle était une formule Excel:

Dim vResult As Variant 
    vResult = Application.Evaluate("=SUM(IF(Invoice_List_Item=""1/4 Item"",0.25,0)+IF(Invoice_List_Item=""1/2 Item"",0.5,0)+IF(Invoice_List_Item=""1 Item"",1,0))") 
+0

Merci Charles travaille le charme;) – James