Macro calcul avec une boucle

Résolu
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

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. 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 :(
      1. Contributeur
        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
    2. Bonjour,

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

      Cordialement
      Patrice
      1. Merci beaucoup :)
        ca répond exactement à ce que je voulais !