VBA - Sommeprod sur une variable tableau

ahmed73

XLDnaute Nouveau
Bonjour,
j'aimerai savoir s'il est possible de faire une formule sommeprod en vba sur une variable tableau
Dans l'exemple mis ci dessous, je cherche à faire la somme d'une colonne avec 1 critère (=somme.si) ,.. mais par la suite je voudrais le faire sur plusieurs colonnes, c'est pour cela que j'ai fait cette petite formule "test".
J'utilise la formule index() pour sélectionner une colonne entière de la variable tableau.

Avec ce code j'obtiens une erreur d'execution et je ne sais pas pourquoi.
Quelqu'un peut il m'aider svp, ca fait 3semaine que je me prend la tete ?

ex:

Sub Exceptions_tab_TEST()

Dim x As Variant
Dim tablo() As Variant


tablo = Range("A5:AQ65000")

x = "=SOMMEPROD((INDEX(tablo;;31)=""FR"")*INDEX(tablo;;28))"

Cells(1, 1) = x

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Sommeprod sur une variable tableau

Bonjour,

pour utiliser les fonctions des feuilles de calcul en vba il faut utiliser "WorksheetFunction", un exemple ci dessous :

Code:
x = Application.WorksheetFunction.Max(Range("A1:A10"))

bon après midi
@+
 

ahmed73

XLDnaute Nouveau
Re : VBA - Sommeprod sur une variable tableau

Merci pour ta reponse, mais ca ne marche toujours pas en utilisant ta formule:

x = Application.WorksheetFunction.SumProduct((Index(tablo, , 31) = "FR") * Index(tablo, , 28))

Quand je lance la macro, ca m'indique:"Erreur de compilation, sub ou fonction non definie" il ne reconnait pas la fonction "Index" de la formule.

Quelqu'un sait pourquoi ?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Sommeprod sur une variable tableau

Re,

essaye peut être ainsi :
Code:
x = Application.WorksheetFunction.SumProduct((Application.WorksheetFunction.Index(ta blo, , 31) = "FR") * Application.WorksheetFunction.Index(tablo, , 28))

mais suis pas un formuliste, alors la validité de ta formule, je ne saurais dire.... d'ailleurs pas sur que tu puisse utiliser "index" dans un tableau virtuel...
 

ahmed73

XLDnaute Nouveau
Re : VBA - Sommeprod sur une variable tableau

Pierrot93
j'ai aussi essayé ta nouvelle solution, mais ca met:"Erreur de compilation Argument non facultatif"

C'est vraiment bizarre,... je ne sais pas se qui est possible de faire avec un tableau virtuel,.. mais si j'arrive à résoudre ce pb. Ca m'ouvrira plein de nouvelle possibilité puisque ca accélère le temps de traitement,..
Si je ne peux pas utiliser la fonction "index" pour sélectionner une colonne entière, comment faire dans une variable tableau ?

Merci quand meme pour ton aide Pierrot !!!
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : VBA - Sommeprod sur une variable tableau

Bonjour,

en l'état, pas sûr du tout qu'il soit possible appliquer une fonction de feuille de calcul "sommeprod" à une seule colonne d'un tableau virtuel.... peut être faire les calculs directement dans vba à l'aide de boucles sur le tableau... A voir...

bonne journée
@+
 

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95