Macro répétition de formule

Damien@ Messages postés 37 Statut Membre -  
Damien@ Messages postés 37 Statut Membre -
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

  1. onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120
     
    Une tiote boucle ?

    For ligne = 15 To nblignes
    Range("H" & ligne).Formula = "=G" & ligne & "-B" & ligne
    Next ligne
    -1
  2. Damien@ Messages postés 37 Statut Membre 3
     
    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.
    -1