|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Bonsoir à tous,
Dans un tableau qui contient les noms en colonne a et les salaires en colonne B, j'aimerais avoir des sommes à chaque clique d'un CommandButton. Le calcul est arrêté lorsqu'on clique à nouveau sur le bouton. Mais je ne sais pas intercepter le deuxième clique pour arrêter la boucle et effectuer le traitement voulu. Code :
|
||
|
|
00
|
|
|
#2 | ||||||
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonsoir,
Une piste : une variable externe à la boucle + DoEvents() Une correction : Long au lieu de Integer (limité à 2^15 ligne au max) Code :
Mais sinon, pour faire une somme à chaque clic pourquoi ne pas : - stocker la position de la somme dans une cellule - stocker le résultat actuel de la somme dans une autre cellule Code :
Code :
|
||||||
|
|
00
|
|
|
#3 | ||||
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 313 ![]() |
Bonsoir,
J'utiliserais une variable booléenne Code :
Code :
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
||||
|
|
10
|
|
|
#4 | ||
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Bonsoir BlueMonkey,
J'ai essayé de développer ton idée, en faisant activer le calcul de la somme pour ce qui est saisie. Un dexieme bouton, remettra la cellule "Somme" à zéro. mais je ne sais pas, pourquoi le calcul ne se fait pas (La cellule "Somme" est toujours vide Code :
Bonsoir corona, je m'excuse, je n'ai pas vu ton post. Oui, le ToggleButton est bien fait pour le marche/arrêt. |
||
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Re.
En utilisant la bonne idée de Corona, et en éliminant ce qui me paraît superflu. Code :
Code :
|
||||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Re,
J'ai enlevé ce que tu as indiqué en rouge, mais le Worksheet_Change ne marche pas |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 313 ![]() |
Bonsoir,
Comment veux-tu avoir une somme alors que la variable BSum est à 0. Pour garder la valeur d'une variable lorsqu'elle est déclarée dans une procédure il faut la déclarée comme Static Ne pas oublier alors de la remettre à zéro le moment opportun.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
10
|
|
|
#8 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
En réfléchissant au besoin, je me dis que de refaire la somme de la première cellule du tableau,
à la cellule qui vient d'être saisie à chaque nouvelle saisie, est probablement plus simple. Du coup pour faire la somme : [E2].Value = WorksheetFunction.Sum(Range("B2:B" & Target.Row)) Et pour indiquer la ligne jusqu'où va la somme : [I2].Value = Target.Row |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Bonsoir corona,
Maintenant le problème rencontré est que WorkSheet_Change n'est jamais déclenché ![]() même un petit MsgBox dedans n'est pas affiché. EDIT : Salut BlueMonkey, Le calcul ne commence pas en B2 tout le temps parce que les saisies sont faites selon les noms correspondants en colonne A, tout au long de la colonne B. Et parfois les saisies sont éparpillés et ne se suivent pas forcément. L'essentiel quand l’opération "Somme des saisies" est activée tout ce qui est saisie après en colonne B est comptabilisé. Une fois l'opération arrêter, la cellule "Somme" est remise à zéro. |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Citation:
Pour que les évènements soit de nouveau activé, il faut exécuter un Application.EnableEvents = True [Edit] : Conseil, lire post #8 Citation:
(avec une adaptation pour la remise à 0 sur le démarrage de la somme.) Bonne nuit. |
||
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Voila le code final,
Code :
|
||
|
|
10
|
|
|
#12 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Content de voir que le code réponde au besoin.
.Bonne nuit. |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 526 ![]() |
Bonjour BlueMonkey,
Merci de ton aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com