macro boucle

macro boucle - VB/VBA/VBS - Programmation

Marsh Posté le 15-03-2005 à 22:09:45    

bonsoir,
 
En B2 et E2 des chiffre que je multiplie en f2
 
Je veux une macro qui me fasse ce calcul puis passe à la ligne en dessus.
 
J'essaie :

Code :
  1. Range("b2" ).Select
  2. While ActiveCell.Value <> ""
  3. Range("f2" ).Select
  4. ActiveCell.Offset(1, 0).Select
  5. ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-1]"
  6. Wend


 
Mais la macro ne s'arrete jamais et navigue entre F2 et F3  :pfff:  
 
Une idée ? :hello:


Message édité par tibot le 15-03-2005 à 22:49:09
Reply

Marsh Posté le 15-03-2005 à 22:09:45   

Reply

Marsh Posté le 15-03-2005 à 22:47:11    

bonsoir :
Ta boucle while se réfère indéfiniment à activeCell (soit F2)
A+

Reply

Marsh Posté le 15-03-2005 à 22:48:52    

Tu triches ! faut pas changer les règles du jeu en cours de partie !

Reply

Marsh Posté le 15-03-2005 à 22:48:53    

oui mais F2 c'est pour lui indiquer où l'ont veux le résultat de la multiplication ?

Reply

Marsh Posté le 15-03-2005 à 22:49:46    

waiting...

Reply

Marsh Posté le 15-03-2005 à 22:55:05    

Re:
Faudrait savoir sur quoi s'exerce ta boucle si c'est sur la colonne B ou sur F
Si c'est sur B
 
Range("B2" ).Select  
While ActiveCell.Value <> ""  
Range("F2" ).FormulaR1C1 = "=RC[-4]*RC[-1]"
ActiveCell.Offset(1, 0).Select  
Wend
 
Enfin quelque chose comme ça l'idée est bonne ta formule je sais pas...
En d'autre terme il ne faut pas déplacer ta sélection de la colonne B.
A+


Message édité par galopin01 le 15-03-2005 à 22:56:09
Reply

Marsh Posté le 15-03-2005 à 23:05:35    

la selection descend bien dans la colonne B et s'arrete lorsqu'elle est vide mais les calculs ne se font pas en F (juste en F2)
 
il faut la boucle aussi pour le calcul...

Reply

Marsh Posté le 15-03-2005 à 23:31:18    

soluce :  
 
i= 2
While Cells(i, 2) <> ""
Cells(i, 6) = Cells(i, 2) * Cells(i, 5)
i = i + 1
Wend
 
 
alalala i= 2
 
dsl  

Reply

Marsh Posté le 15-03-2005 à 23:53:02    

Of course,  
mais je ne me suis pas intéressé à la sortie, juste à la boucle...  
(car je ne sentais pas bien le " ).FormulaR1C1 = "=RC[-4]*RC[-1]"
On pourrait rajouter que ta solution finale est doublement bonne car elle supprime le offset (toujours préférable : gain de temps non négligeable sur de grandes boucles)
A+


Message édité par galopin01 le 15-03-2005 à 23:58:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed