Private d As Variant 'déclare la variable d (Date)
Private test As Boolean 'déclare la variable test
'........................................
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'au changement de sélection
d = ActiveCell.Value 'définit la date d
End Sub
'........................................
Private Sub Worksheet_Change(ByVal Target As Range) 'l'édition d'une cellule
Dim com As String 'déclare la variable com (COMmentaire)
'si l'édition a lieu ailleurs que dans la plage E11:AB41, sort de la procédure
If Application.Intersect(Target, Range("E11:AB41")) Is Nothing Then Exit Sub
'si l'édition est une date'sort de la procédure (permet de rentrer les dates)
If IsDate(Target.Value) Then Exit Sub
'si la variable test est vraie, sort de la procédure (évite les boucles sur l'événement)
If test = True Then Exit Sub
'Condition : si la cellule n'est pas effacée ou si le choix "Autre"n'est pas sélectionné
If Target.Value <> "" And Target.Value <> "Autre" Then
test = True 'définit la variable test
com = Target.Value 'définit la variable com
Target.ClearComments 'supprime un eventuel commentaire
Target.AddComment com 'ajoute le commentaire correspondant au choix
Target.Interior.ColorIndex = 4 'colore la cellule de rouge
End If 'fin de la condition
'condition : si la cellule est effacée
If Target.Value = "" Then
test = True 'définit la variable test
Target.Interior.ColorIndex = 3 'colore la cellule de vert
Target.ClearComments 'supprime un eventuel commentaire
End If 'fin de la condition
'condition : si le choix est "Autre"
If Target.Value = "Autre" Then
test = True 'définit la variable test
Target.Interior.ColorIndex = 4 'colore la cellule de rouge
Target.ClearComments 'supprime un eventuel commentaire
'Imputbox pour écrire le message du commentaire
Target.AddComment InputBox("vous devez ajouter le commentaire manuellement")
End If 'fin de la condition
Target.Value = d 'remet la date dans la cellule
test = False 'redéfinit la variable test
End Sub