incrémenter cellule si

klorane

XLDnaute Occasionnel
Bonjour à tous,

j'aurai besoin qu'une cellule s'incrémente si une autre cellule est à 0 ou est inférieur à 0 et qu'ensuite on passe à la ligne suivante pour effectuer la meme opération etc...

exemple :

la cellule B1 contient 0 il faudrait que lorsque je clique sur un bouton, que la cellule A1 s'incrémente de 1 de maniere à se que la cellule B1 affiche par exemple 2 si celle ci est egale à A1*2 et qu'ensuite on passe a la ligne suivante etc.

L'opération doit absolument se faire à l'aide d'un bouton.

Je joins pour mieux comprendre une feuille excel avec un exemple.

Merci

Sylvain
 

Hervé

XLDnaute Barbatruc
Bonsoir klorane

ta piece jointe n'est pas passé. alors je t'envoi la mienne.

mais pas sur d'avoir compris

salut [file name=Classeur2_20051211000349.zip size=6234]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_20051211000349.zip[/file]
 

Pièces jointes

  • Classeur2_20051211000349.zip
    6.1 KB · Affichages: 29

klorane

XLDnaute Occasionnel
Merci Hervé pour ta réponse.

ça m'ennuie que la piece jointe soit pas passé et en plus j'utilise pas mon pc donc ça complique les choses! :-(

vu que c'est pas passé je vais essayer de l'expliquer comme ça:
L1, L2, etc...= ligne 1.... et A, B = COLONNE A etc...


A B
L1 0 0
L2 0 0
L3 0 0
L4 0 0
L5 0 0
L6 0 0

il faudrait que lorsque je clique sur le bouton que si la cellule B10 que l'on passe à la ligne suivante.

En espérant que ça sera plus clair.
 

klorane

XLDnaute Occasionnel
en espérant cette fois que le fichier zip passe [file name=excel_20051211003659.zip size=6176]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/excel_20051211003659.zip[/file]
 

Pièces jointes

  • excel_20051211003659.zip
    6 KB · Affichages: 28

Hervé

XLDnaute Barbatruc
re klorane

pas sur d'avoir mieux compris.

mais essayes ceci :

Sub Bouton1_QuandClic()
Dim c As Range

For Each c In Range('e5:e' & Range('e65536').End(xlUp).Row)
If c <= 0 Then c.Offset(0, -1) = c.Offset(0, -1) + 1
Next c

End Sub

salut
 

klorane

XLDnaute Occasionnel
On approche! :) lol

je vais develloper plus

à l'ouverture de la feuille toutes les cellules sont à 0.

A1=0
A2=0
A3=0
A4=0
A5=0

et

B1=0 (B1=A1*2)
B2=0 (B2=A2*2)
B3=0 (B3=A3*2)
B4=0 (B4=A4*2)
B5=0 (B5=A5*2)

si B10 alors on peut passer à la ligne suivante à la ligne suivante et là meme chose jusqu'à la derniere ligne.

(Ya t'il possibilité que je ne soit pas obliger de cliqer 50 000 fois sur le bouton pour que l'action se fasse? car j'ai plus de de 3000 lignes qui ont se calcul à effectuer donc si 1 seul click sur le bouton pourrait faire que le calcul s'enchaine non stop ça m'arrangerait bien lol).

Merci
 

klorane

XLDnaute Occasionnel
je me suis rendu compre que le forum ne prenait pas les signe supérieur ou égale donc normal qu'on comprenne rien donc je reposte.

à l'ouverture de la feuille toutes les cellules sont à 0.

A1=0
A2=0
A3=0
A4=0
A5=0

et

B1=0 (B1=A1*2)
B2=0 (B2=A2*2)
B3=0 (B3=A3*2)
B4=0 (B4=A4*2)
B5=0 (B5=A5*2)

si B1 est égale ou supérieur à 0 alors on peut passer à la ligne suivante et là meme chose jusqu'à la derniere ligne.

(Ya t'il possibilité que je ne soit pas obliger de cliqer 50 000 fois sur le bouton pour que l'action se fasse? car j'ai plus de de 3000 lignes qui ont se calcul à effectuer donc si 1 seul click sur le bouton pourrait faire que le calcul s'enchaine non stop ça m'arrangerait bien lol).

Merci
 

klorane

XLDnaute Occasionnel
Merci Hervé pour ta dernier macro. En modiant certain elements de mon tableau ça fonctionne.

Par contre y a t'il moyen de faire que je ne sois pas obligé de cliquer à chaque fois sur le bouton pour que ça marche?

car la macro incrémente bien de 1 mais passe à la ligne suivante mais pour autant la cellule n'est pas supérieur à 0. Donc je suis obligé de recliquer à chaque fois sur le bouton pour que la macro reverifie que le cellule est bien supérieur à 0.

il faudrait qu'elle recommence jusqu'à se que tout les cellule soit bien supérieur à 0.

Si t'as une astuce ça m'interesse!lol

quoi qu'il en soit merci déjà pour la plus grosse partie.

Sylvain.
 
V

Visiteur

Guest
Salutations à tous

Une façon d'exécuter une boucle sur une plage consiste à utiliser la boucle For Each...Next avec la collection de cellules spécifiée dans la propriété Range. Visual Basic définit automatiquement, à chaque exécution de la boucle, une variable objet pour la cellule suivante. La procédure suivante effectue une boucle dans la plage A1:D10, remplaçant par 0 (zéro) tout nombre dont la valeur absolue est inférieure à 0,01.

effectue les corrections nécessaire en essayant :

Sub RoundToZero2()
For Each c In Worksheets('Sheet1').Range('A1:D10').Cells
If Abs(c.Value) < 0.01 Then c.Value = 0
Next
End Sub

en souhaitant que c'est ce que tu veux
 

Statistiques des forums

Discussions
312 606
Messages
2 090 176
Membres
104 435
dernier inscrit
ZAMAZ