re
il te suffit de tester la couleur de la cellule, si elle est violette, on ne fait rien :
Private Sub effacer_Click()
Dim c As Range
For Each c In Selection
If Not c.Interior.Color = 6697881 Then
If Not Application.Intersect(c, Range("D16:AH70, AK16:BA70, BD16:CH70, CK16:DA70")) Is Nothing Then
c.Interior.Color = vbWhite
Else
c.Interior.Color = RGB(216, 216, 216)
End If
End If
Next c
End Sub
a plus