Option Explicit
Sub Supprimer_selon()
Dim c As Range, cc As Range, i As Long
With Application: .ScreenUpdating = False: .Calculation = xlManual: End With
Set cc = Range("d5:d" & Cells(Rows.Count, 4).End(xlUp).Row)
For Each c In cc
If c.Offset(, -1) = "" Then c.Offset(, -1).FormulaR1C1 = "=R[-1]C"
Next
For i = Cells(Rows.Count, "c").End(xlUp).Row To 5 Step -1
If Range("c" & i) = "GAUCHE" Then Rows(i).Delete
Next i
Columns(3).SpecialCells(xlCellTypeFormulas, 23).ClearContents
With Application: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub