OVH Cloud OVH Cloud

Sumproduct

4 réponses
Avatar
Christian
Je cherche à utiliser la fonction Sumproduct dans une procédure VBA.
Je n'y arrive pas.

Help me please !

Merçi

Dim zoneSERVICE As Range
Dim zoneSEMAINE As Range
Dim zoneCOUT As Range

Set zoneSERVICE = Range(Cells(2, 1), Cells(Lmax, 1))
Set zoneSEMAINE = Range(Cells(2, 9), Cells(Lmax, 9))
Set zoneCOUT = Range(Cells(2, 11), Cells(Lmax, 11))

Dim refSERVICE as Range
Dim refSEMAINE as Range

Set refSERVICE =Range("a1")
Set refSEMAINE as Range("a2")

Dim a As Double


a = Application.WorksheetFunction.SumProduct _
((zoneSERVICE & "=" & refSERVICE) * _
(zoneSEMAINE & "=" & refSEMAINE) * _
(zoneCOUT))

4 réponses

Avatar
isabelle
bonjour Christian,

essaie comme ça,

a = Evaluate("=SumProduct((" & zoneSERVICE.Address & _
"=" & refSERVICE.Address & ") * (" & zoneSEMAINE.Address & _
"=" & refSEMAINE.Address & ") * (" & zoneCOUT.Address & "))")

isabelle


Je cherche à utiliser la fonction Sumproduct dans une procédure VBA.
Je n'y arrive pas.

Help me please !

Merçi

Dim zoneSERVICE As Range
Dim zoneSEMAINE As Range
Dim zoneCOUT As Range

Set zoneSERVICE = Range(Cells(2, 1), Cells(Lmax, 1))
Set zoneSEMAINE = Range(Cells(2, 9), Cells(Lmax, 9))
Set zoneCOUT = Range(Cells(2, 11), Cells(Lmax, 11))

Dim refSERVICE as Range
Dim refSEMAINE as Range

Set refSERVICE =Range("a1")
Set refSEMAINE as Range("a2")

Dim a As Double


a = Application.WorksheetFunction.SumProduct _
((zoneSERVICE & "=" & refSERVICE) * _
(zoneSEMAINE & "=" & refSEMAINE) * _
(zoneCOUT))




Avatar
Christian
Bonsoir Isabelle,

merci pour ton aide. J'ai testé le code. Il n'y a pas de plantage. Super.
Cependant le résultat est faut du fait que ma base de donné est sur une
feuille (zone...) et mon critère de selection (ref...) sur une autre
feuille.

est t-il possible d'adapter le code à cette situation ou faut t'il
impérativement que mes données se trouvent sur la même feuille ?


"isabelle" a écrit dans le message de
news:%
bonjour Christian,

essaie comme ça,

a = Evaluate("=SumProduct((" & zoneSERVICE.Address & _
"=" & refSERVICE.Address & ") * (" & zoneSEMAINE.Address & _
"=" & refSEMAINE.Address & ") * (" & zoneCOUT.Address & "))")

isabelle


Je cherche à utiliser la fonction Sumproduct dans une procédure VBA.
Je n'y arrive pas.

Help me please !

Merçi

Dim zoneSERVICE As Range
Dim zoneSEMAINE As Range
Dim zoneCOUT As Range

Set zoneSERVICE = Range(Cells(2, 1), Cells(Lmax, 1))
Set zoneSEMAINE = Range(Cells(2, 9), Cells(Lmax, 9))
Set zoneCOUT = Range(Cells(2, 11), Cells(Lmax, 11))

Dim refSERVICE as Range
Dim refSEMAINE as Range

Set refSERVICE =Range("a1")
Set refSEMAINE as Range("a2")

Dim a As Double


a = Application.WorksheetFunction.SumProduct _
((zoneSERVICE & "=" & refSERVICE) * _
(zoneSEMAINE & "=" & refSEMAINE) * _
(zoneCOUT))






Avatar
isabelle
bonjour Michel,

tu peut mettre les noms de feuille de cette façon,

a = Evaluate("=SumProduct((Feuil1!" & _
zoneSERVICE.Address & "þuil1!" & _
refSERVICE.Address & ") * (Feuil1!" & _
zoneSEMAINE.Address & _
"þuil1!" & refSEMAINE.Address & ") * (Feuil1!" & _
zoneCOUT.Address & "))")

isabelle


Bonsoir Isabelle,

merci pour ton aide. J'ai testé le code. Il n'y a pas de plantage. Super.
Cependant le résultat est faut du fait que ma base de donné est sur une
feuille (zone...) et mon critère de selection (ref...) sur une autre
feuille.

est t-il possible d'adapter le code à cette situation ou faut t'il
impérativement que mes données se trouvent sur la même feuille ?


"isabelle" a écrit dans le message de
news:%

bonjour Christian,

essaie comme ça,

a = Evaluate("=SumProduct((" & zoneSERVICE.Address & _
"=" & refSERVICE.Address & ") * (" & zoneSEMAINE.Address & _
"=" & refSEMAINE.Address & ") * (" & zoneCOUT.Address & "))")

isabelle



Je cherche à utiliser la fonction Sumproduct dans une procédure VBA.
Je n'y arrive pas.

Help me please !

Merçi

Dim zoneSERVICE As Range
Dim zoneSEMAINE As Range
Dim zoneCOUT As Range

Set zoneSERVICE = Range(Cells(2, 1), Cells(Lmax, 1))
Set zoneSEMAINE = Range(Cells(2, 9), Cells(Lmax, 9))
Set zoneCOUT = Range(Cells(2, 11), Cells(Lmax, 11))

Dim refSERVICE as Range
Dim refSEMAINE as Range

Set refSERVICE =Range("a1")
Set refSEMAINE as Range("a2")

Dim a As Double


a = Application.WorksheetFunction.SumProduct _
((zoneSERVICE & "=" & refSERVICE) * _
(zoneSEMAINE & "=" & refSEMAINE) * _
(zoneCOUT))











Avatar
Christian
Super ! merci bcp.
"isabelle" a écrit dans le message de
news:
bonjour Michel,

tu peut mettre les noms de feuille de cette façon,

a = Evaluate("=SumProduct((Feuil1!" & _
zoneSERVICE.Address & "þuil1!" & _
refSERVICE.Address & ") * (Feuil1!" & _
zoneSEMAINE.Address & _
"þuil1!" & refSEMAINE.Address & ") * (Feuil1!" & _
zoneCOUT.Address & "))")

isabelle


Bonsoir Isabelle,

merci pour ton aide. J'ai testé le code. Il n'y a pas de plantage.
Super.


Cependant le résultat est faut du fait que ma base de donné est sur une
feuille (zone...) et mon critère de selection (ref...) sur une autre
feuille.

est t-il possible d'adapter le code à cette situation ou faut t'il
impérativement que mes données se trouvent sur la même feuille ?


"isabelle" a écrit dans le message de
news:%

bonjour Christian,

essaie comme ça,

a = Evaluate("=SumProduct((" & zoneSERVICE.Address & _
"=" & refSERVICE.Address & ") * (" & zoneSEMAINE.Address & _
"=" & refSEMAINE.Address & ") * (" & zoneCOUT.Address & "))")

isabelle



Je cherche à utiliser la fonction Sumproduct dans une procédure VBA.
Je n'y arrive pas.

Help me please !

Merçi

Dim zoneSERVICE As Range
Dim zoneSEMAINE As Range
Dim zoneCOUT As Range

Set zoneSERVICE = Range(Cells(2, 1), Cells(Lmax, 1))
Set zoneSEMAINE = Range(Cells(2, 9), Cells(Lmax, 9))
Set zoneCOUT = Range(Cells(2, 11), Cells(Lmax, 11))

Dim refSERVICE as Range
Dim refSEMAINE as Range

Set refSERVICE =Range("a1")
Set refSEMAINE as Range("a2")

Dim a As Double


a = Application.WorksheetFunction.SumProduct _
((zoneSERVICE & "=" & refSERVICE) * _
(zoneSEMAINE & "=" & refSEMAINE) * _
(zoneCOUT))