Re,
Insère le code suivant dans le module de la feuille "Facture" et teste :
Private Sub Worksheet_Change(ByVal Target As Range)
'la cellule de saisie ou modification
If Not Intersect(Target, [A24]) Is Nothing Then
'voir si la plage comparée contient le même texte que la cellule de saisie
If WorksheetFunction.CountIf(Range("D33:D39"), Target) > 0 Then
MsgBox "Attention cette étape a déjà été facturée"
Target.ClearContents
End If
End If
End Sub
Remarque : le code est conçu à partir des éléments fournis dans ta première demande, il faut surement l'adapter à ton cas réel