Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Sommeprod sur une variable tableau

  • Initiateur de la discussion Initiateur de la discussion ahmed73
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
@+
 
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
 
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...
 
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:
Re : VBA - Sommeprod sur une variable tableau

Re-Bonjour tout le monde,

Personne ne connait la solution à mon Problème ?

Ou est se que c'est impossible de le faire ?

Merci
 
Dernière édition:
Re : VBA - Sommeprod sur une variable tableau

Bonsoir,
personne ne connait la reponse ?

C'est bizarre, parce que je suis presque sûr que c'est faisable,... Mais je connais pas la solution snif snif snif !!!

Un peu d'aide svp
 
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
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
589
Réponses
53
Affichages
881
Réponses
5
Affichages
545
Réponses
9
Affichages
425
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…