В модуль нужного листа
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
If Not IsEmpty(Target.Value) Then
With Target
If Target.Comment Is Nothing Then .AddComment
' получение значения "comtext" в ваших руках - формула в скобках любая.
'-----------------------------------------
comtext = CStr(.Value / 2)
'-----------------------------------------
.Comment.Text Text:=comtext
' чтобы коммент был виден, раскомментируйте строчку ниже
' .Comment.Visible = True
End With
' форматирование комментария
'--------------------------------------------
With Target.Comment.Shape.TextFrame
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
.AutoSize = True
.Characters.Font.FontStyle = "полужирный"
.Characters.Font.Size = 9
End With
'--------------------------------------------
End If
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Формулу для
comtext придумайте сами.