Menu

Incrémenter le numéro de ligne dans une formule

- - Dernière réponse : M-12
Messages postés
424
Date d'inscription
lundi 22 septembre 2008
Dernière intervention
19 janvier 2019
- 11 janv. 2019 à 05:16
Bonjour à tous,

Mon problème semble simple mais je ne trouve pas la solution... je débute en VBA.
Voici mon problème: je souhaite incrémenter une formule toutes les 18 lignes.
Pour le moment, mon code est le suivant:
" Range("E24").Select
ActiveCell.FormulaR1C1 = "=(SUM(R[-16]C:R[-8]C))*40/100+(SUM(R[-7]C:R[-4]C))*40/140+R[-4]C*15/100+R[-3]C+R[-2]C"
Selection.AutoFill Destination:=Range("E24:BV24"), Type:=xlFillDefault
Range("E24:BV24").Select

Range("E42").Select
ActiveCell.FormulaR1C1 = "=(SUM(R[-16]C:R[-8]C))*40/100+(SUM(R[-7]C:R[-4]C))*40/140+R[-4]C*15/100+R[-3]C+R[-2]C"
Selection.AutoFill Destination:=Range("E42:BV42"), Type:=xlFillDefault
Range("E42:BV42").Select

Range("E60").Select
ActiveCell.FormulaR1C1 = "=(SUM(R[-16]C:R[-8]C))*40/100+(SUM(R[-7]C:R[-4]C))*40/140+R[-4]C*15/100+R[-3]C+R[-2]C"
Selection.AutoFill Destination:=Range("E60:BV60"), Type:=xlFillDefault
Range("E60:BV60").Select

..."

Je dois appliquer cette formule toutes les 18 lignes jusqu'à E600... à la main c'est long :-D

Je vais donc écrire quelque chose comme:

Range("Ei").Select
ActiveCell.FormulaR1C1 = "=(SUM(R[-16]C:R[-8]C))*40/100+(SUM(R[-7]C:R[-4]C))*40/140+R[-4]C*15/100+R[-3]C+R[-2]C"
Selection.AutoFill Destination:=Range("Ei:BVi"), Type:=xlFillDefault
Range("Ei:BVi").Select

avec i commençant à 24 puis i+18 jusqu'à 600...

Je n'arrive pas à trouver des infos pour y arriver.

Merci d'avance de votre aide!

Bonne journée



Louise
Afficher la suite 

Votre réponse

1 réponse

Messages postés
424
Date d'inscription
lundi 22 septembre 2008
Dernière intervention
19 janvier 2019
66
0
Merci
Bonjour,

Teste avec ceci

Sub essai()
Dim i%
  For i = 24 To 600 Step 18
    Cells(i, 5).Select
    ActiveCell.FormulaR1C1 = "=(SUM(R[-16]C:R[-8]C))*40/100+(SUM(R[-7]C:R[-4]C))*40/140+R[-4]C*15/100+R[-3]C+R[-2]C"
    Selection.AutoFill Destination:=Range(Cells(i, 5), Cells(i, 74)), Type:=xlFillDefault
  Next i
End Sub
Commenter la réponse de M-12