Re
Je n'ai pas de retour par rapport aux questions dans mon dernier post...En attendant voici déjà une proposition.
En supposant que l'on considère les lignes 1 à 7 et 54 à 61 comme non modifiables en couleur, voici le code pour le rouge mais sur la cellule entière. Il vous suffit d'adapter pour le code Noir.
Sub Rouge()
Dim ws As Worksheet
Set ws = Worksheets("Histo") 'ActiveSheet 'ou Worksheets("Feuil1") par exemple
'Couleur du texte en B8 : RGB(250, 0, 0)
'Worksheets("Histo").UsedRange.Select
If Intersect(ActiveCell, ws.Range("A1:BT7", "A54:BT61")) Is Nothing Then
ws.Unprotect Password:="1"
Selection.Font.Color = RGB(250, 0, 0)
ws.Protect Password:="1"
End If
End Sub
Par contre, s'il clique sur la corbeille et qu'il valide le message de confirmation, tout s'effacera et il ne sera pas possible de faire CTRL+Z pour revenir en arrière.
Votre code modifié à essayer
Sub Clean_data()
Dim ws As Worksheet, rng As Range
Set ws = ActiveSheet
If Intersect(ActiveCell, ws.Range("A1:BT7")) Is Nothing Then
If MsgBox("Etes-vous certain de vouloir supprimer la sélection ?", vbYesNo, "Demande de confirmation") = vbYes Then
'ou Worksheets("Feuil1") par exemple
ws.Unprotect Password:="1"
On Error Resume Next
Set rng = Intersect(Selection, Selection.SpecialCells(xlCellTypeConstants, 23))
On Error GoTo 0
If Not rng Is Nothing Then
rng.ClearContents
MsgBox "Le contenu de la sélection a été effacé !"
End If
ws.Protect Password:="1" 'avec les condtions établies
End If
End If
End Sub
Cordialement