Добрый день! друзья, помогите, пожалуйста с макросом, весь интернет перерыл не смог найти... Я в ВБА особо не шарю, но позарез нужен этот макрос. В примитивном примере есть формула ЕСЛИ, которая срабатывает при изменении на втором листе. Как написать макрос для msgbox, так что бы он один раз сработал при выполнении истины? Я пробовал сам написать, но бокс всплывает только после нажатия энтера в формуле и то только на этом же листе, а надо чтобы хотя бы после обновления листа и на любом листе, а не там где формула.. Заранее спасибо.
Добрый день! друзья, помогите, пожалуйста с макросом, весь интернет перерыл не смог найти... Я в ВБА особо не шарю, но позарез нужен этот макрос. В примитивном примере есть формула ЕСЛИ, которая срабатывает при изменении на втором листе. Как написать макрос для msgbox, так что бы он один раз сработал при выполнении истины? Я пробовал сам написать, но бокс всплывает только после нажатия энтера в формуле и то только на этом же листе, а надо чтобы хотя бы после обновления листа и на любом листе, а не там где формула.. Заранее спасибо.Meissen0985
_Igor_61, Спасибо, но это не то. Нужно чтобы msg реагировал на изменение в ячейке именно по формуле в листе "результат". Если истина формулы "да" всплывает сообщение...
_Igor_61, Спасибо, но это не то. Нужно чтобы msg реагировал на изменение в ячейке именно по формуле в листе "результат". Если истина формулы "да" всплывает сообщение...Meissen0985
Meissen0985, полнее опишите задачу: формула одна? если не одна, то соот. ли строки на листах условие и результат? в лист условие данные вводятся вручную? и т.п.
Meissen0985, полнее опишите задачу: формула одна? если не одна, то соот. ли строки на листах условие и результат? в лист условие данные вводятся вручную? и т.п.Nic70y
Nic70y, по другому.... во вложении пример который мне нужно реализовать. На листе идет подсчет залитых чисел в зависимости от цвета при помощи пользовательской функции. Когда красных становится 0 должен срабатывать msgbox, но по моему коду он срабатывает если только встать в ячейку в саму формулу и нажать enter, а при пересчете формулы box не всплывает. Почему?
Nic70y, по другому.... во вложении пример который мне нужно реализовать. На листе идет подсчет залитых чисел в зависимости от цвета при помощи пользовательской функции. Когда красных становится 0 должен срабатывать msgbox, но по моему коду он срабатывает если только встать в ячейку в саму формулу и нажать enter, а при пересчете формулы box не всплывает. Почему?Meissen0985
Public Function CountByColor(DataRange As Range, Coloru As Range) As Double Dim u As Range Dim kolvo As Double Application.Volatile True kolvo = 0 For Each u In DataRange If u.Interior.Color = Coloru.Interior.Color Then kolvo = kolvo + 1 Next u CountByColor = kolvo End Function
[/vba] [vba]
Код
Private Sub Worksheet_Calculate() If Range("Результат").Value = 0 Then MsgBox "Да" End Sub
[/vba]
попробуйте так [vba]
Код
Public Function CountByColor(DataRange As Range, Coloru As Range) As Double Dim u As Range Dim kolvo As Double Application.Volatile True kolvo = 0 For Each u In DataRange If u.Interior.Color = Coloru.Interior.Color Then kolvo = kolvo + 1 Next u CountByColor = kolvo End Function
[/vba] [vba]
Код
Private Sub Worksheet_Calculate() If Range("Результат").Value = 0 Then MsgBox "Да" End Sub
Возможно, потому, что Вы хотели это сделать с помощью формулы "ЕСЛИ" в первом сообщении, а потом выяснилось, что нужно смотреть на цвет заливки и макрос, а не на формулу
Возможно, потому, что Вы хотели это сделать с помощью формулы "ЕСЛИ" в первом сообщении, а потом выяснилось, что нужно смотреть на цвет заливки и макрос, а не на формулу _Igor_61