Evaluate.SUMPRODUCT avec contraintes déterminées par variable

  • Initiateur de la discussion Initiateur de la discussion romrom
  • 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 !

R

romrom

Guest
Salut le Forum !!!

Bon j'ai fouillé le google, ainsi que le forum, j'ai trouvé des choses intéressantes mais là je bloque....
Let's me explain : j'aimerais effectuer un SUMPRODUCT((plage= Variable)......). J'ai bien trouvé quelque chose sur le forum : https://www.excel-downloads.com/threads/resolu-vba-pb-avec-syntaxe-de-sumproduct.201369/.

J'ai exactement le même problème, seulement la solution proposée ne fonctionne pas chez moi.

mon code :

Dim tu
tu = Commande
i = 73

MsgBox Application.Evaluate("=SUMPRODUCT((C2:C" & i & "=""Commande"")*(L2:L73=""Soldé"")*(D2😀73))")
MsgBox Application.Evaluate("=SUMPRODUCT((C2:C" & i & "=""" & tu & """)*(L2:L73=""Soldé"")*(D2😀73))")

La 1er msgbox (figé) me donne 15 (résultat escompté)
La 2eme msgbox (avec variable "tu") me donne 0 (comme si "TU" n'était pas reconnu)

J'ai essayé de déclarer "tu" comme string, mettre seulement 2 guillemets, les deux en même temps, rien n'y fait... Je ne sais que faire. Si quelqu'un a une idée, je suis preneur.

Merci à vous

J'ai essayé
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Bonsoir romrom,

Peut-être (il manquait 1 guillemet)

Code:
MsgBox Application.Evaluate("=SUMPRODUCT((C2:C" & i & "=""" & tu & """")*(L2:L" & i & "=""Soldé"")*(D2:D" & i & "))")
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Salut Tototiti !!!

Merci pour ta réponse !!! Malheureusement ça ne doit pas être ça le problème... Si j'ai bien compris tu as rajouté un " après la variable. J'ai essayé comme ça, il m'a dit d'aller siffler là-haut sur la colline, ("erreur de compilation, syntaxe : )" en vrai). J'ai essayé de mettre 4 " autour de la variable mais là il a pas aimé du tout.

Merci quand même, i keep on trying

Bonsoir romrom,

Peut-être (il manquait 1 guillemet)

Code:
MsgBox Application.Evaluate("=SUMPRODUCT((C2:C" & i & "=""" & tu & """")*(L2:L" & i & "=""Soldé"")*(D2:D" & i & "))")
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Re,

Oui, finalement il n'y a pas de guillemets en trop

Viens de tester ça chez moi avec succès

Code:
Sub test()
i = 464
tu = "toto"
MsgBox Application.Evaluate("=SUMPRODUCT((C2:C" & i & "=""" & tu & """)*(L2:L" & i & "=""Soldé"")*(D2:D" & i & "))")
End Sub

Donc ton problème vient de

Code:
tu = Commande

à changer en

Code:
tu = "Commande"
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Yeeeeeeees Tototiti t'es un champion !!!!! ça marche niquel je te remercie !!! Pourtant j'étais sûr d'avoir déjà testé cette option. Quoi qu'il en soit merci à toi ça fonctionne !!
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Si je peux me permettre d'abuser encore un peu ... Si ma variable est une date ? J'ai fais la même chose ( 3 " autour de la variable), ça marche mais il me renvoi 0, alors que le résultat devrait être 5. J'ai essayé avec 3 ", en dim ma variable date (fecha) as date et laissant 3 ", et la dernière tentatives que tu peux voir en bas. VOilà si toi ou qui que ce soit a une idée, il est le bienvenue. Merci d'avance les amis !!!

Dim tu
Dim fecha As Date
fecha = 25 / 3 / 2013
tu = "Commande"
i = 73

MsgBox Application.Evaluate("=SUMPRODUCT((BDD!C2:C" & i & " = """ & tu & """)*(BDD!H2:H" & i & "= "" & fecha & "")*1)")


PS : Sans "*(BDD!H2:H" & i & "= "" & fecha & "")" ma formule marche, et je me suis assuré que la colonne H est bien remplie de date et que celle que je cherche y figure.
 
Re : Evaluate.SUMPRODUCT avec contraintes déterminées par variable

Bonjour romrom,

en VBA, les dates doivent être entourées de # et écrites dans le format mm/jj/aaaa
donc un truc comme

Code:
fecha = #03/25/2013#

Après pour l'Evaluate, je n'ai pas testé mais je tenterais

Code:
MsgBox Application.Evaluate("=SUMPRODUCT((BDD!C2:C" & i & "=""" & tu & """)*(BDD!H2:H" & i & "=" & clng(fecha) & ")*1)")
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour