cs_akmer
Messages postés43Date d'inscriptionmercredi 9 avril 2008StatutMembreDernière intervention 9 septembre 2008
-
26 août 2008 à 10:56
cs_akmer
Messages postés43Date d'inscriptionmercredi 9 avril 2008StatutMembreDerniè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
marinmarais
Messages postés104Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention16 juillet 20101 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 !
marinmarais
Messages postés104Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention16 juillet 20101 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
cs_akmer
Messages postés43Date d'inscriptionmercredi 9 avril 2008StatutMembreDerniè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