[VBA] Sumproduct

Hello le forum

Cela fait maintenant 2H que je me casse la tête à faire fonctionner une formule VBA qui ne me semble pas si complexe que cela...

Dans mon fichier originial des SOMMEPROD mais le fichier en question rame beaucoup.

C'est pourquoi j'ai décidé de passer sous VBA. Cela semble être beaucoup plus rapide car le calcul ne se fait pas en instantané.

En PJ un exemple de ce que je souhaite faire. Je me suis d'ailleurs permis la formule SOMMEPROD qui fonctionne.

J'aimerai connaitre mon coût total pour l'achat et la vente de bois (dans l'exemple je n'ai que fait pour la vente...)

Les conditions sont les suivantes :

Réalise moi la somme en produit lorsqu'en colonne A les dates sont entre le 01/01/2017 et 02/01/2017 et qu'en colonne B il y a la mention "BOIS" et en colonne D la mention "VENTE".

Vous retrouverez mon code VBA dans le module 1 sous le nom "SUB TESTER ()".

Ce dernier m'affiche dans un msgbox la réponse 0. Je n'arrive pas à comprendre pourquoi...

Je ne souhaite pas passer par FORMULA .

Quelqu'un peut m'aider à trouver la bonne formule ?

Merci !

12test.xlsm (15.33 Ko)

Bonjour,

Avec un autre code, à tester

58gregleo.xlsm (20.40 Ko)

Yes !

J'ai mis un peu de temps à l'adapter mais ça marche !

Dommage que SUMPRODUCT ne fonctionne pas comme on veut en VBA...

Merci beaucoup en tout cas !

Salut,

Ouf, l'affaire fut chaude mais voici un SUMPRODUCT avec variables :

var1 = Format([Feuil1!H2], "0")
var2 = Format([Feuil1!I2], "0")
var3 = Feuil1.Range("I3").Value
var4 = Feuil1.Range("H4").Value

MsgBox Application.Evaluate("=SumProduct(C2:C13*E2:E13*(B2:B13=" & Chr(34) & var3 & Chr(34) & ")*(D2:D13=" & Chr(34) & var4 & Chr(34) & ")*(A2:A13>=" & var1 & ")*(A2:A13<=" & var2 & "))")

Pour les variables Dates (var1 et var2), il faut passer par le format numérique des nombres entiers pour obtenir le numéro de série correspondant à la date voulue. C'est, à mon avis, la seule possibilité pour faire une comparaison entre les dates Excel et la variable VBA (Excel et VBA ont une représentation différente des dates d'où des incompatibilités de type de données).

Les variables textuelles var3 et var4 doivent être entourées de guillemets mais tu le savais déjà.

A+

H

Rechercher des sujets similaires à "vba sumproduct"