Somme des produit de deux colonne

Résolu/Fermé
Signaler
-
 Elzo -
Bonjour,
je suis nouveau sur VBA, je voudrai faire la somme des produit de 2 colonne. D'apres mes recherche suis tombé sur la formule SommeProd dont son utilisation m'est toujours difficile.
De ce fait je sollicite votre aide car il s'agit de mon memoire...
Merci d'avance


A voir également:

11 réponses

Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
1. L'objectf est un peu atteint malgré des erreurs inattendues des varibles.
Peux tu en dire plus ?
2. J'avoue que je comprend pas trop la syntaxe utilisee pour l'initialisation
Voir le commentaire
3. Quelques modification histoire de faire plus propre. J'ai aussi supprimé ta ligne de calcul de Bilan qui avait échappé aux ciseaux

' un tableau par catégorie de textbox
Dim TE(1 To 10) As String    ' equipements
Dim Tp(1 To 10) As Single    ' puissances
Dim Tq(1 To 10) As Single    ' quantites

' initialisation des tableaux depuis les textbox
' la propriété Controls permet d'acceder aux textbox via leur nom
Sub initT()
Dim k As Byte
For k = 1 To 10
  TE(k) = Me.Controls("txtE" & k).Text
  Tp(k) = Val(Me.Controls("txtp" & k).Text)
  Tq(k) = Val(Me.Controls("txtq" & k).Text)
Next k
End Sub

' transfert des tableaux vers feuille Source
Private Sub btnAjout_Click()
Dim lideb As Long, k As Long
Call initT
With Sheets("Source")
  lideb = 4 '.Range("A" & Rows.Count).End(xlUp).Row
  If lideb < 2 Then lideb = 2
  For k = 1 To 10
    .Range("A" & lideb + k - 1).Value = TE(k)
    .Range("B" & lideb + k - 1).Value = Tp(k)
    .Range("C" & lideb + k - 1).Value = Tq(k)
  Next k
End With
End Sub

' calcul bilan
Private Sub btnPuissance_Click()
Dim k As Byte, Bilan As Single
Bilan = 0
Call initT
For k = 1 To 10
  Bilan = Bilan + Val(Tq(k)) * Val(Tp(k))
Next k
MsgBox " Le bilan de puissance est : " & Bilan
End Sub

Cdlmnt
1
Messages postés
26401
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 janvier 2022
6 184
bonjour

tout dépend de ce que vous voulez faire
s'il s'agit simplement de faire le total des produits lignes par ligne de deux colonnes:

soit colonne A par colonne B de ligne 1 à ligne 100 par exemple, à adapter:
simplement:

=SOMMEPROD((A1:A100)*(B1:B100))

Avec des Excel récents, cette formule peut fonctionner avec des hauteurs "totales" de champ (A:A ou B:B)
Toutefois vu qu'elle est assez lourde, mieux vaut limiter au minimum utile nombre de lignes.

mais si vous voulez soumettre ces opérations à d'autres conditions , revenez avec plus d'explications


crdlmnt


La qualité de la réponse dépend surtout de la clarté de la question, merci!
0
Oui Vaucluse, il s'agit bien de faire le total des produits lignes par ligne de deux colonnes.
La formule que vous m'avez donnée est - elle valable aussi sur VBA car la synthase ressemble a celle du classeur excel.
si possible puis je avoir un exemple sur VBA.
Merci davance
0
Messages postés
16547
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2022
3 258
Bonjour elzo

Salut Vaucluse, ca va ? ;o)

je ne vois pas trop l'intér^t d'utiliser VBA mais si si ta plage n'est pas trop grande
MsgBox [SumProduct((A2:A200)*(B2:B200))] 

0
Merci pour la précision Michel,
J'utilise VBA pour faire un formulaire qui fait la somme de produit en donnant le résultat apres avoir cliqué sur un bouton.
Merci pour les reponses
0
Bonjour
Au fait je suis entrain de faire un formulaire Userform qui comporte 2 colonne (TextBox) a partir desquels je veux faire leur somme de produit.
1erement, j'ai posé ma formule pour le calcul. mais je constate que s'il ya pas d'entree dans une des plage des colonne, le calcul ne passe pas.
Sur ceux je sollicite votre aide.
2ement, le meme probleme je le constate dans les plages d'exel car apres avoir entrer les donnees dans le userform, je l'enregistre dans une base de donnees sous forme de tableau. une fois enregistré, je procede au calcul de leur SOMMEPROD. celle-ci ne passe pas aussi.
je suis disponible pour éventuels details afin de resoudre mon probleme car cela fait partie de mon Projet de fin d'etude.
merci d'avance
0
Messages postés
16547
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2022
3 258
Bonjour,

Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic coller le raccourci dans votre message



questions:
1/Ton projet de fin d'études: études +/- informatique ou non ?
2/ nombre de lignes (environ) de la base de données

suis absent cet aprèm et demain matin...
0
>
Messages postés
16547
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2022

Mon projet consiste a faire un outil de suivi de consommation d'energie electrique via VBA. Sur ceux je dois faire des formulaire pour l'execution du programme.
Actuellement je suis sur le premier formulaire qui consiste a faire un bilan de puissance composé de 2 colonne de 10 ligne a faire leur somme de produit.
Ci apres le lien de téléchargement du fichier avec comme mot de passe : formulaire
Merci d'avance

https://mon-partage.fr/f/nzR5h1kU/
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
Bonjour

En attendant le retour de Michel (salut amical), une proposition pour simplifier un peu ton code
https://mon-partage.fr/f/EOrGasvL/

Cdlmnt
0
bien recu ccm81
L'objectf est un peu atteint malgré des erreurs inattendues des varibles.
J'avoue que je comprend pas trop la syntaxe utilisee pour l'initialisation
Qu'a meme un grand merci
Je reviendrai avec d'autres question soyez prets.
Merci
0
tres claire mon grand
Impeccable, je ne cesse d'en profiter.
Sachez que je reviendrai avec d'autres questions lol.. puisque je suis debutant et je dois realiser un projet avec.
Un grand Merci encore
0
Messages postés
16547
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2022
3 258
bien vu, Ccm, +1 !

:o)
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
Salut Michel

Merci pour le +1, c'est marrant, ce sont ceux qui n'en ont pas besoin qui trouvent une utilité aux solutions proposées ;-)
Au passage, supprimer l'utilisation de la fonction Val ici (un reste d'un premier jus)
Bilan = Bilan + Val(Tq(k)) * Val(Tp(k))

Bonne journée à toi

Cdlmnt
0
Bonjours les amis,
Je suis de retour pour savoir:
Comment insérer une date format jj/mm/aaaa ou calendrier dans un userform?
Le but est de calculer le nombre de jour entre 2 date données.
Merci d'avance
0