Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nb As Long
If Target.Column <> 3 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Value = "Annulé" Then Exit Sub
'nb = Application.CountA(Range("C2:C" & target.row))
nb = Application.CountA(Range("C2", Target))
If nb + 1 < Target.Row Then MsgBox ("Saisir les lignes précédentes qui sont vides"): Target.Value = ""
End Sub