Re,
Il y a une possibilité de capter certains changement comme le formatage mais c'est tout de même perfectible !
On va utiliser un dictionnaire qui va contenir un tableau et ce tableau va contenir les formatages à surveiller de la cellule et en utilisant la procédure événementielle "Worksheet_SelectionChange()" on va comparer certaines valeurs a celles contenu dans le tableau et si une a changée, on inscrit la date et l'heure; On pourrait éventuellement assimiler ça à la procédure Exit d'un TextBox car c'est à la sélection de la cellule suivante qu'on va contrôler la précédente.Tout d'abord, il te faut mettre le code dans le module de la feuille concernée ceci fait et afin d'initialiser le dictionnaire, il te faut sélectionner une autre feuille puis revenir à la feuille concernée de façon à exécute la Sub "Worksheet_Activate()" (comme elle de possède pas d'argument, tu peux la lancer comme une Sub normale, curseur dedans puis F5). Ici, 6 formatages sont surveillés mais attention, selon le nombre de cellules ça peut vite devenir "lourdaud" :
'déclarées en tête du module de la feuille
Dim Dico As Object
Dim Tbl(1 To 6)
Dim Cel As Range
'le dictionnaire est initialisé à l'activation de la feuille (peut être mis dans "Workbook_Open()"
Private Sub Worksheet_Activate()
Set Dico = CreateObject("Scripting.Dictionary")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then
'si une sélection multiple est faite, dans le doute, on part du principe qu'une modif va être faite
Range("A1").Value = Now
Exit Sub 'sortie car trop complexe de gérer une plage entière
End If
'si une sélection a déjà eue lieu...
If Not Cel Is Nothing Then
With Cel
'si la cellule n'a pas encore été sélectionnée, l'inscrit dans le dico
If Dico.exists(.Address) = False Then
'ici les paramètres à surveiller (à adapter)
Tbl(1) = .Font.Color
Tbl(2) = .Interior.Color
Tbl(3) = .Font.Name
Tbl(4) = .Font.Size
Tbl(5) = .Font.Italic
Tbl(6) = .Font.Bold
'inscription du tableau dans le dico
Dico(.Address) = Tbl
Else 'si déjà sélectionnée, effectue le contrôle et inscrit la date le cas échéant
If Dico(.Address)(1) <> .Font.Color Then Range("A1").Value = Now
If Dico(.Address)(2) <> .Interior.Color Then Range("A1").Value = Now
If Dico(.Address)(3) <> .Font.Name Then Range("A1").Value = Now
If Dico(.Address)(4) <> .Font.Size Then Range("A1").Value = Now
If Dico(.Address)(5) <> .Font.Italic Then Range("A1").Value = Now
If Dico(.Address)(6) <> .Font.Bold Then Range("A1").Value = Now
'puis recharge les nouvelles valeurs dans le tableau puis dans le dico
Tbl(1) = .Font.Color
Tbl(2) = .Interior.Color
Tbl(3) = .Font.Name
Tbl(4) = .Font.Size
Tbl(5) = .Font.Italic
Tbl(6) = .Font.Bold
Dico(.Address) = Tbl
End If
End With
End If
'affecte à la variable qui va être controlée à la sélection d'après (on pourrait assimiler ça à l'Exit du TextBox)
Set Cel = Target
End Sub