Ce que j'ai proposé
Range("A1").End(xldown).Row
est un façon de rendre variable ton "12"
Cela signifie de partir de la cellule A1, descendre jusqu'en bas des cellules renseignées, et en tirer le n° de la dernier ligne (Row)
Maintenant, il est vrai que ta macro est un peu alambiquée ... je vais essayer de comprendre et te donner une solution.
En tous cas, BRAVO, c'est un bon début, continue, persévère, j'apprécie les gens qui veulent apprendre et être autonomes.
Voici une correction :
Sub Formule_SI()
'
' Formule_SI Macro
'
Range("D4").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]-RC[-2]>=0,RC[-1]-RC[-2],#N/A)"
Selection.AutoFill Destination:=Range("D4:D" & Range("A4").End(xlDown).Row)
Range("E4").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]-RC[-3]<0,RC[-2]-RC[-3],#N/A)"
Selection.AutoFill Destination:=Range("E4:E" & Range("A4").End(xlDown).Row)
End Sub
Mon erreur, parce que j'en fais aussi !, était de partir de A1 et non de A4.
Et bonjour à l'Île Maurice, j'ai un très très bon ami là-bas !