Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zone As Range, xarea As Range, xcell As Range
Set Zone = Range("b7:m7,b13:m27")
On Error Resume Next
If Not Intersect(Target, Zone) Is Nothing Then
For Each xarea In Zone.Areas
For Each xcell In xarea
xcell.Comment.Delete
If xcell.Formula <> "" Then xcell.AddComment xcell.FormulaLocal
Next xcell
Next xarea
End If
End Sub