Calcul en boucle

Résolu
cs_akmer Messages postés 43 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 9 septembre 2008 - 26 août 2008 à 10:56
cs_akmer Messages postés 43 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 9 septembre 2008 - 26 août 2008 à 13:44
Bonjour,
J'ai 2 feuilles:"Statistiques" et "traitement"
Je souhaite qu'un bouton permette de multiplier les colonnes B et C de la feuille "traitement" et envoi le résultat dans la cellule C10 de la feuille "Statistiques".
En gros que le bouton face le calcul suivant: B1*C1 + B2*C2+ B3*C3... jusqu'à la derniére ligne non vide.
Je joint un fichier Excel pour une meilleur compréhension.
Merci d'avance pour votre aide
Cdt

lien:http://cjoint.com/?iAk3NI567G

4 réponses

marinmarais Messages postés 104 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 16 juillet 2010 1
26 août 2008 à 11:39
Je viens de regarder ton fichier... Je m'attendais a une somme de plusieurs milliers de termes... il y en a juste 3...
Une macro dans ce cas equivaut a se servir d'un bazooka pour tuer une mouche.

Ce sont les formules sur Excel qu'il faut utiliser. Dans la cellule C10 de ta page "Statistiques", tape :
=Traitement!B1*Traitement!C1+Traitement!B2*Traitement!C2+Traitement!B3*Traitement!C3

Renseigne toi sur les formules sur Excel, c'est tres efficace !

A+,
Tom.

Marin Marais
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
26 août 2008 à 11:19
Salut,
Et c'est quoi que tu n'arrive pas à faire exactement?

@+: Ju£i€n
Pensez: Réponse acceptée
0
marinmarais Messages postés 104 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 16 juillet 2010 1
26 août 2008 à 11:35
Salut,

Faut que tu fasses une boucle que calcule ta somme des Bi * Ci
Voila un exemple de code qui pourrais marcher :
' Declaration des variables
dim nblignes as long
dim i as long
dim prodscal as double

' J'active la feuille "Traitement"
Sheets("Traitement").Select

' Je calcule le nombre de lignes de la feuille idoine
nblignes = Cells.SpecialCells(xlCellTypeLastCell).Row

' Je calcule la somme des Bi * Ci... dans ce cas, je calcule a partir de la premiere ligne
prodscal = 0
for i = 1 to nblignes
      prodscal = prodscal + range("B" & i).value * range("C" & i).value
next i

' J'active desormais la feuille "Statistiques"
Sheets("Statistiques").Select

' Et hop, je mets le resultats dans la cellule desiree
range("C10").value=prodscal

Voila, t'as plus grand chose a faire pour que ca marche dans ton cas precis

A+,
Tom

Marin Marais
0
cs_akmer Messages postés 43 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 9 septembre 2008
26 août 2008 à 13:44
Merci j'ai donc utilisé la formule suivante
Sub Calcul()
Dim Ligne As Long
    Ligne = ThisWorkbook.Worksheets("Traitement").Range("B65536").End(xlUp).Row
    ThisWorkbook.Worksheets("Statistiques").Range("C10").FormulaR1C1 = "=SUMPRODUCT(Traitement!R1C2:R" & Ligne & "C2,Traitement!R1C3:R" & Ligne & "C3)"
End Sub
plus rapide et plus court
0
Rejoignez-nous