bonjour
je souhaite utiliser la fonction SommeProd en VBA mais j’arrive pas a trouver le bon code
après beaucoup d’essaie voici mon code final est qui ne fonctionne pas.
Option Explicit
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.SumProduct((Plage1 = Crite1) * (Plage2))
Range("F2").Value = MaSomProd
End Sub
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