Bonjour,
Avec :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sForm As String, Lig As Long
Lig = Target.Row
If Lig >= 20 And Lig <= 25 Then
sForm = "=SI(ESTERREUR(CHERCHE(""-50%"";A#));SI(ESTERREUR(CHERCHE(""+ 25%"";A#));F#*H#;F#*H#*1,25);F#*H#*50%)"
Application.EnableEvents = False
Range("j" & Lig).FormulaLocal = Replace(sForm, "#", Lig)
Application.EnableEvents = True
End If
End Sub