Sub Remplace()
Dim t, i&
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 'si la feuille est filtrée
With Range("J1", Range("J" & Rows.Count).End(xlUp))
t = .Value 'matrice, plus rapide
If Not IsArray(t) Then Exit Sub 'si une seule cellule
For i = 2 To UBound(t)
If t(i, 1) <> "" Then If LCase(t(i, 1)) <> "retraite" Then t(i, 1) = "Autre motif"
Next
.Value = t 'restitution
End With
End Sub