XL 2019 [Résolu] VBA SommeProd, résultat en formule

Fredox

XLDnaute Occasionnel
Bonjour,

Je cherche a faire une macro afin d'obtenir dans ma cellule la formule sommeprod sur une plage dynamique:

Je ne sais pas si on peut m'aider:
VB:
Sub Test2()

Set Sh_Active = ActiveSheet
Dlig = Range("C" & Rows.Count).End(xlUp).Row

With ActiveSheet.Cells
Set cellule = .Find("Qté.", LookIn:=xlValues)
    If Not cellule Is Nothing Then ColQ = cellule.Column
End With

Col = ActiveCell.Column

Set Zone1 = Range(Cells(9, ColQ), Cells(Dlig, ColQ))
Set Zone2 = Range(Cells(9, Col), Cells(Dlig, Col))

Cells(4, Col).NumberFormat = "#,##0.00 $"

' Fonctionne -->> Affiche le résultat
Cells(4, Col).Formula = Application.WorksheetFunction.SumProduct(Zone1, Zone2)

' Ne fonctionne pas, j'aimerais que dans la cellule s'affiche la formule, non le résultat
Cells(4, Col + 1).Formula = "=sommeprod(" & Zone1 & "*" & Zone2 & ")"

End Sub

Avec Zone1 et Zone2, je défini mes deux plages dynamique.
Cela fonctionne bien si je veux le simple résultat, en revanche, pour écrire la formule je n'y arriva pas.


Une idée ?
Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Fredox,
Il faut reconstituer la chaine de caractères correspondant à Zone1 et Zone2, c'est du texte et non des range.
Essayez :
VB:
Zone1 = Cells(9, ColQ).Address & ":" & Cells(Dlig, ColQ).Address
Zone2 = Cells(9, Col).Address & ":" & Cells(Dlig, Col).Address
Cells(4, Col + 1).FormulaLocal = "=sommeprod(" & Zone1 & ";" & Zone2 & ")"
Ce qui donne : =SOMMEPROD($C$6:$C$9;$E$6:$E$9)
 

Discussions similaires

Réponses
0
Affichages
83
Réponses
12
Affichages
225