Bonjour,
Pourquoi utiliser SOMMEPROD, alors qu’un simple SOMME.SI est suffisant
Sub sumProdVba()
Dim Plage1 As Range
Dim Plage2 As Range
Dim Crite1
Dim MaSomProd As Currency
Set Plage1 = Range("A3:A20")
Set Plage2 = Range("B3:B20")
Crite1 = Range("E2").Value
MaSomProd = Application.WorksheetFunction.SumIf(Plage1, Crite1, Plage2)
Range("F2").Value = MaSomProd
End Sub
Après pour utiliser SOMMEPROD en VBA, un exemple
Sub sumProdVba()
Dim MaSomProd As Currency
MaSomProd = Evaluate("SumProduct((A3:A20 = E2) * (B3:B20))")
Range("F3").Value = MaSomProd
End Sub
ou aussi
Sub sumProdVba()
Dim Plage1 As String, Plage2 As String
Dim Chaine As String, MaSomProd As Currency
Plage1 = Range("A3:A20").Address
Plage2 = Range("B3:B20").Address
Chaine = Range("E2").Address
MaSomProd = Evaluate("SumProduct(" & Plage2 & "*(" & Plage1 & "= " & Chaine & "))")
Range("f4") = MaSomProd
End Sub