Re : Simplifier formule sommeprod en VBA
Ci-joint le code obtenu en vba :
Sub Macro1()
'
' Macro1 Macro
'
'
Range("B50").FormulaR1C1 = _
"=IF(AND(R1C7=""Toutes"",R2C7=""Toutes""),-SUMPRODUCT((A_MOIS<=12)*((A_ACTIVITE=""PLAGE"")+(A_ACTIVITE=""PLONGEE""))*(LEFT(A_CODE_NATURE,2)=TEXT(64,""0""))*(A_IMPUTE))," & Chr(10) & "IF(AND(R1C7=""Toutes"",R2C7<>""Toutes""),-SUMPRODUCT((LEFT(A_CI_SERVICE,LEN(R2C7))=TEXT(R2C7,""0""))*(A_MOIS<=12)*((A_ACTIVITE=""PLAGE"")+(A_ACTIVITE=""PLONGEE""))*(LEFT(A_CODE_NATURE,2)=TEXT(64,""0""))*(A_IMPUTE)),IF(AND(R1C7<>""Toutes"",R2C7=""Toutes""),-SUMPRODUCT((A_CODE_ETAB=R1C7)*(A_MOIS<=12)*((A_ACTIVITE=""PLAGE"")+(A_ACTIVITE=""PLONGEE""))*(LEFT(A_CODE_NATURE,2)=TEXT(64,""0""))*(A_IMPUTE)),-SUMPRODUCT((A_CODE_ETAB=R1C7)*(LEFT(A_CI_SERVICE,LEN(R2C7))=TEXT(R2C7,""0""))*(A_MOIS<=12)*((A_ACTIVITE=""PLAGE"")+(A_ACTIVITE=""PLONGEE""))*(LEFT(A_CODE_NATURE,2)=TEXT(64,""0""))*(A_IMPUTE)))))"
Range("B50").Select
ActiveCell.Value = ActiveCell.Value
End Sub
Le problème est donc que tout est sur une seule ligne... donc pas très simple pour la lecture.
A+.