Re : Cherche tutoriel SUMPRODUCT en VBA
rebonjour
Voila ce qu'est j'ai trouvé chez toi:
Utiliser une fonction matricielle SOMMEPROD par macro
La macro correspond à cette formule:
SOMMEPROD((E58:E183=H60)*(C58:C183=I60)*(B58:B183=J60)*(F58:F183))
Les arguments H60, I60 et J60 seront maintenant des données saisie dans les Textbox d'un Userform
msgBox Evaluate("=SUMPRODUCT((E58:E183 =""" & textBox1.Text & """) * " & _
"(C58:C183 =""" & textBox2.Text & """) * (B58:B183 =""" & textBox3.Text & """) * (F58:F183))")
Donc j'ai essayé d'adapter sans succès
Alors j'ai été voir chez nos amis anglosaxons
J'ai essayé ceci:
Private sub commandbutton etc
'Ceci est la formule qui fonctionne dans la feuille
'SOMMEPROD((MOIS($A$2:$A$25)=MOIS($I$10))*($B$2:$B$25=$I$11)*($D$2:$D$25="X"))
' et que j'essaie de traduire en VBA dans l'userform
'pour le meomet je ne m'occupe pas des textbox'
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim lenom As Range
Dim ladate As Range
Dim chaine As String
Set rng1 = Sheets(1).Range("A2:A25")
Set rng2 = Sheets(1).Range("B2:B25")
Set rng3 = Sheets(1).Range("D2
25")
chaine = "X"
'J'obtiens #VALEUR en b26
Sheets(1).Range("B26") = Evaluate("SumProduct((Month(" & rng1.Address & "))= Month(ladate)) * ((" & rng2.Address & ")= lenom.Value))*((" & rng3.Address & ")= """ & chaine & """))")
'et un message d'erreur avec msgbox
'MsgBox x
End Sub
(Pardon pour ma syntaxe surement pas tres orthodoxe)