[VBA] Somme de la multiplication de deux colonnes

Salut les experts en VBA !
Je bloque fort sur mon projet VBA, je vous explique mon problème :

Ma page "Recap" doit faire apparaître en case "F5" le poids total d'une commande.
Ma page "Recherche" laisse apparaître les quantités en colonne B et les poids par unité en colonne G.

J'aimerais donc naturellement appliquer en gros (B1*G1) + (B2*G2) + (B3*G3)...
J'ai donc naturellement pensé à la formule suivante :

Sheets("Recap").Range("F5").FormulaR1C1 = "=SUM(Recherche!C[1]*Recherche!C[-4])"

C'est un échec, cette commande me donne "0" (et croyez moi, les colis en question ont un poids ! ^^)

Pourriez vous me venir en aide ?

bonjour

probablement en Vbaifiant la formule suivante

""=somme(produitmat(b1:b.....; g1:g...)) "" ou simplement:""= sommeproduct((b1:b....)*(g1:g...))""

les colonnes doivent avoir le même nb de ligne

Bonjour Tulipe 4,

Ta solution me donne comme résultat #NOM ?

Je pense que cette dernière ne prends pas en compte le fait que les informations nécessaires au traitement du problème se trouvent sur une autre feuille (je n'en suis pas certain)

Bonjour

A tester

Range("F5").Select
ActiveCell.FormulaR1C1 = _
"=Feuil2!R[-4]C[-5]*Feuil2!R[-4]C[1]+Feuil2!R[-3]C[-5]*Feuil2!R[-3]C[1]+Feuil2!R[-2]C[-5]*Feuil2!R[-2]C[1]"

Bonjour,

exemple d'utilisation de sommeprod en vba

cdlt

42favier.xlsm (19.22 Ko)

Range("F5").Select

ActiveCell.FormulaR1C1 = _

"=SUMPRODUCT(Feuil2!R[-4]C[-5]:R[-2]C[-5],Feuil2!R[-4]C[-4]:R[-2]C[-4])"

Bonjour Joco7915,

Alors, oui et non, effectivement tu viens de me donner une idée qui pourrait me débloquer (ajouter une colonne qui prends calcul ce qu'il faut pour ensuite renvoyer la somme de cette colonne) mais, j'ai un nombre de colonne qui peut varier (de 2 à 100) et malheuresement ta formule me ferait une ligne longue comme mon bras remplie de calculs la plupart du temps inutile.

Ce pendant, avec

DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row
Range("I1").FormulaR1C1 = "=Recherche!C[-7]*Recherche!C[-2]"
Range("I1").AutoFill Destination:=Range("I1:I" & DerniereLigne)

Je peux remplir la colonne I de la feuille recherche de mon fichier pour utiliser

    Sheets("Recap").Range("F5").FormulaR1C1 = "=SUM(Recherche!C[3])"

dans la feuille Recap et ainsi avoir l'information que je recheche.

Un peu moins clean et un peu plus capilotracté mais ça fonctionne !

(Je garde encore un peu le sujet en non résolu si un génie arrive pour me trouver la solution dans une seule et même formule magique sans avoir à remplir une colonne supplémentaire de formules mais merci !)

Rebonjour,

J'aimerais donc naturellement appliquer en gros (B1*G1) + (B2*G2) + (B3*G3)...

Comme le fait remarquer très justement Tulipe, la fonction SommeProd fait exactement ca. Vous devriez essayer de l'utiliser.

Mettez un fichier exemple ca aide beaucoup

Cdlt

Je vais vous préparer un fichier exemple afin de réussir à mettre en place un SommeProd car je n'y arrive pas moi même.

Mon fichier présentant des informations potentiellement confidentielles dans une base de donnée utilisée plus tôt dans le code, je vous prépare ça d'ici lundi !

Rechercher des sujets similaires à "vba somme multiplication deux colonnes"