Somproduct VBA Variable

Bonjour,

Je ne comprends pas ce qui ne fonctionne pas dans mon code ? j'essaie de faire une somme prod avec des variables

Merci à vous

Sub moi()

Dim Plage1, Plage2, Plage3, lTR

Set Plage1 = Range("V1:V7")

Set Plage2 = Range("W1:W7")

Set Plage3 = Range("X1:X7")

lTR = "S"

Range("Y1").Formula = "=SUMPRODUCT((" & plage1 & "=""" & ltr & """")*(" & Plage2 & ")*(" & Plage3 & "))"

End Sub

Bonjour Mael

maeljourdain a écrit :

Bonjour,

Je ne comprends pas ce qui ne fonctionne pas dans mon code ? j'essaie de faire une somme prod avec des variables

Merci à vous

Pour moi tu ne définis pas correctement l'objet source de ta formule, essaye comme ça

Sub moi()
Dim Plage1, Plage2, Plage3, lTR
Set Plage1 = Sheets("TOTO").Range("V1:V7")
Set Plage2 = Sheets("TOTO").Range("W1:W7")
Set Plage3 = Sheets("TOTO").Range("X1:X7")
lTR = "S"
Sheets("TOTO").Range("Y1").Formula = "=SUMPRODUCT((" & plage1 & "=""" & ltr & """")*(" & Plage2 & ")*(" & Plage3 & "))"
End Sub

A+

Re,

Ta solution ne fonctionne pas, j'ai trouvé un code sur un forum :

CACEIS_C = "S"

Nb_l = Workbooks("base de données sans liaisons.xlsm").Sheets("10P").Range("A" & Rows.Count).End(xlUp).Row

Range("Z1").Formula = "=SUMPRODUCT((A2:A" & Nb_l & "=""" & CACEIS_C & """)*(J2:J" & Nb_l & ")*(P1:P" & Nb_l & "))"

cependant la range Z1 n'est pas dans la même feuille que la formule, Z1 est dans workbooks("Toto".sheets("Ok")

alors que les plages sont dans Workbooks("base de données sans liaisons.xlsm").Sheets("10P")

Comment faire ?

Re,

J'ai répondu sans réfléchir tu veux appliquer une formule à une cellule,

donc la définition des plages par variable objet n'est pas la bonne solution

Essaye ceci

Sub moi()
  Dim NomClasseur As String, NomFeuille As String
  Dim Plage1 As String, Plage2 As String, Plage3 As String, lTR
  ' Noms à définir
  NomClasseur = "base de données sans liaisons.xlsm"
  NomFeuille = "10P"
  ' Définir les plages
  Plage1 = "'[" & NomClasseur & "]" & NomFeuille & "'!V1:V7"
  Plage2 = "'[" & NomClasseur & "]" & NomFeuille & "'!W1:W7"
  Plage3 = "'[" & NomClasseur & "]" & NomFeuille & "'!X1:X7"
  lTR = "S"
  ' Inscrire la formule résultante
  Sheets("TOTO").Range("Y1").Formula = "=SUMPRODUCT((" & Plage1 & "=""" & lTR & """)*(" & Plage2 & ")*(" & Plage3 & "))"
End Sub

A+

magnifique c'est ce que je cherchais merci grandement )))))

Rechercher des sujets similaires à "somproduct vba variable"