Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 26/08/2008, 10h55   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: avril 2008
Messages: 65
Par défaut Calcul avec une boucle

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
akmer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 14h00   #2 (permalink)
Nouveau membre du Club
 
Date d'inscription: avril 2008
Messages: 65
Par défaut

Je me suis trompé sur les calculs que je souhaitais et je n'arrive pas à trouver la bonne formule maintenant (je suis débutant)
J'avais dit: B1*C1 + B2*C2+ B3*C3...
En faite c'est: B1*C1 +G1*H1+ B2*C2+ G2*H2+ B3*C3+ G3*H3....

La formule qu'on m'avait donnée été celle là:
Code :
Sub Calcul()
Dim Ligne As Long
Ligne = ThisWorkbook.Worksheets("Traitement").Range("B6553 6").End(xlUp).Row
ThisWorkbook.Worksheets("Statistiques").Range("C10 ").FormulaR1C1 = "=SUMPRODUCT(Traitement!R1C2:R" & Ligne & "C2,Traitement!R1C3:R" & Ligne & "C3)"
End Sub
Quel modification faut-il faire par rapport aux modification que j'ai apporté dans le calculs.
Merci d'avance pour votre aide

Dernière modification par fring ; 26/08/2008 à 14h42 Motif: Veuillez utiliser les balises [code] (sélection du code + clic sur #)
akmer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 16h22   #3 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 346
Par défaut

Essaie ça.
Sachant que pour ton problème, il n'ya pas lieu d'utiliser une macro ---> juste une formule matricielle dans la cellule C10 fera l'affaire.

Code :
Sub TestCalcul()
 
'===== Déclaration des Variables ======
Dim A As Double
Dim LaSomme As Double: LaSomme = 0
 
    With Worksheets("Traitement")
'=== Boucle qui effectue le calcul demandé =============
' Ici on considère que le calcul commence à partir de la ligne 2 jusqu'à la dernière ligne de la colonne B '
'  /!\ tu peux tester toutes les colonnes et determiner quelle est la dernière ligne non vide (que ce soit
'  dans B, C, G ou H ou autre)   ---> Dans ce cas tu adaptes le code.
 
        For i = 2 To .Cells(65536, 2).End(xlUp).Row
            A = (.Cells(i, 2) * .Cells(i, 3)) + (.Cells(i, 7) * .Cells(i, 8))
                LaSomme = LaSomme + A
        Next
    End With
 
'====== Affichage du résultat dans la cellule C10 de la feuille "Statistiques"
Worksheets("Statistiques").Cells(10, 3) = LaSomme
 
End Sub

Dernière modification par casavba ; 28/08/2008 à 13h16
casavba est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h42.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter