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

Fermé
Louise - 10 janv. 2019 à 22:29
M-12 Messages postés 1333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 - 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
A voir également:

1 réponse

M-12 Messages postés 1333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 299
11 janv. 2019 à 05:16
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
0