Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then 'interdit de modifier une plage (copier-coller)
With Application: .EnableEvents = False: .Undo: .EnableEvents = True: End With
ElseIf Target.Column > 6 And Target.Interior.ColorIndex <> xlNone Then
If Target = "Saisir ici !" Then Exit Sub
If Application.CountA(Target(2).Resize(101)) = 101 Then
MsgBox "La colonne est pleine !", 48
ElseIf Application.CountIf(Target(2).Resize(101), Target) Then
MsgBox "La donnée '" & Target & "' existe déjà !", 48
Else
Target.Resize(102).Find("", , xlValues) = Target
End If
Target = "Saisir ici !": Target.Select
End If
End Sub