Macro répétition de formule
Damien@
Messages postés
37
Statut
Membre
-
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.
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.
A voir également:
- Macro répétition de formule
- Formule si ou - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule somme excel ligne - Guide
2 réponses
Une tiote boucle ?
For ligne = 15 To nblignes
Range("H" & ligne).Formula = "=G" & ligne & "-B" & ligne
Next ligne
For ligne = 15 To nblignes
Range("H" & ligne).Formula = "=G" & ligne & "-B" & ligne
Next ligne
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.
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.