Macro calcul avec une boucle

Résolu/Fermé
mizou00 Messages postés 36 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 19 avril 2011 - 12 août 2010 à 20:45
mizou00 Messages postés 36 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 19 avril 2011 - 13 août 2010 à 02:55
Bonsoir à tous,

J'ai le code suivant pour faire des calculs dans une feuille, je veux que ma macro me fasse les calculs jusqu'à la ligne 676 dans les deux colonnes A et B, les deux equation ne sont pas fixes je les changerai par la suite :)

Sheets("Feuil1").Select

i = 2
Range("A1").Select
ActiveCell.FormulaR1C1 = "T"

Range("B1").Select
ActiveCell.FormulaR1C1 = "Attach Failure Ratio"

Do While ??? ''''''' jusqu'a la ligne 676
Range("A&i").Select
ActiveCell.FormulaR1C1 = _
"=('Données(4)'!R[3]C[113]+'Données(4)'!R[3]C[115]+'Données(4)'!R[3]C[101]+'Données(4)'!R[3]C[103]+'Données(4)'!R[3]C[105]+'Données(4)'!R[3]C[107])"

Range("B&i").Select
ActiveCell.FormulaR1C1 = _
"=('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[225]-RC[-1])/('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[195]+'Données(4)'!R[3]C[193])"
i = i + 1
Loop


NB: Le code ne marche pas
A voir également:

4 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 12/08/2010 à 21:43
Bonjour,

pour ta boucle tu peux utiliser un for :

for i = 3 to 676
cells(i,1).formulaR1C1 = ta_formule 'colonne A
cells(i,2).formulaR1C1 = ta_formule ' colonne B
next i

Au passage l'enregistreur de macro propose .formulaR1C1 mais tu as aussi .formula pour utiliser les références de type A1.
Et éviter les .select qui sont chronophages.

eric
0
mizou00 Messages postés 36 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 19 avril 2011
12 août 2010 à 21:52
Sheets("Feuil1").Select

Range("A1").Select
ActiveCell.FormulaR1C1 = "T"
For i = 2 To 676
Cells(i, 1).FormulaR1C1 = "('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[225]-RC[-1])/('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[195]+'Données(4)'!R[3]C[193])"
Cells(i, 2).FormulaR1C1 = "('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[225]-RC[-1])/('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[195]+'Données(4)'!R[3]C[193])"
Next i

ca ne marche pas ca m'affiche juste les équations dans les 676 colonnes
ca ne fait pas les calculs :(
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
12 août 2010 à 22:09
je te cite : les deux equation ne sont pas fixes je les changerai par la suite

Si tu veux la somme de C1+C2 alors :
Cells(i, 1) = worksheets("Données(4)").[C1]+worksheets("Données(4)").[C2]

Si c'est la feuille active tu n'est pas obligé de spécifier worksheets("Données(4)").
eric
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
12 août 2010 à 22:10
Bonjour,

C'est normal, tu as oublié le = en début de formule :
...FormulaR1C1 = "=('Données...

Cordialement
Patrice
0
mizou00 Messages postés 36 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 19 avril 2011
13 août 2010 à 02:55
Merci beaucoup :)
ca répond exactement à ce que je voulais !
0