Macro répétition de formule

Bonjour,

je doit écrire un macro qui me calcul une formule en colonne "C 15" autant de fois qu'il y a de cellule écrite en colonne "A"

j'ai commencé une macro qui donne ceci :

'Cherche le nombre de lignes dans la colonne A
Range("A15").Select
nbLignes = Columns("A:A").Find("*", Range("A15")).Row

'Copie de la formule
Range("H15:H" & nbLignes).Formula = "=G15-B15"

mon souci est que la formule ne ce calcul que en C15 et C16 alors que les cellules allant de A15 à A200 sont écrites.

NB: 200 est une donnée variable

Merci de me donner un coup de pouce, je suis novice en la matière.
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Une tiote boucle ?

    For ligne = 15 To nblignes
    Range("H" & ligne).Formula = "=G" & ligne & "-B" & ligne
    Next ligne
    1. Désolé je n'arrive pas à la faire fonctionner.

      voici la macro tel que je lès écrite.

      Sub Calcul_fomule

      'pour ne pas voir les changements d'écran
      Application.ScreenUpdating = False

      'Chercher le nombre de lignes dans la colonne A
      Range("A15").Select
      nbLignes = Columns("A:A").Find("*", Range("A15")).Row

      'Copie de la formule 1
      Range("H15:H" & nbLignes).Formula = "=G15-B15"

      'Copie de la formule 2
      Range("I15:I" & nbLignes).FormulaR1C1 = "=IF(RC[-3]=R13C6,R[-2]C[-3],RC[-1])"

      'Copie de la formule 3
      Range("L15:L" & nbLignes).Formula = "=J15*K15"

      'Copie de la formule 4
      Range("M15:M" & nbLignes).FormulaR1C1 = "=IF(RC[-7]=R13C6,""MORT"",(RC[-1]-RC[-8])/RC[3])"

      'Copie de la formule 5
      Range("N15:N" & nbLignes).FormulaR1C1 = "=IF(RC[-8]=R13C6,""MORT"",(RC[-7]-RC[-11]))"

      'Copie de la formule 6
      Range("O15:O" & nbLignes).FormulaR1C1 = _
      "=IF(RC[-9]=R13C6,""MORT"",((RC[-5]/'bilan global'!R12C12)-RC[-11])/R[-10]C[-1])"

      'Copie de la formule 7
      Range("P15:P" & nbLignes).FormulaR1C1 = "='bilan global'!R24C4*(RC[-9]-RC[-13])"

      'Copie de la formule 8
      Range("Q15:Q" & nbLignes).FormulaR1C1 = "=RC[-5]-RC[-12]-RC[-1]-'bilan global'!R22C8"

      'Copie de la formule 9
      Range("R15:R" & nbLignes).FormulaR1C1 = "=RC[-1]+'bilan global'!R16C12"

      'Message de fin
      MsgBox "Calculs terminés", 64, "Fin"

      End Sub

      Voilà le problème est le même pour chaque formule, le calcul ne se fait qu sur les 2 premières ligne.

      Merci de votre aide.

      Discussions similaires

      exo pix

      2 réponses