Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 13:51   #1
amd3000
Новичок
Джуниор
 
Регистрация: 27.06.2011
Сообщений: 3
По умолчанию Запуск макроса после изменения содержимого ячейки

Помогите решить следующую задачку:

Исходные данные:
1. Имеется макрос который скрывает столбцы, которые не отвечают определённому условию, макрос на скрине.
2. Добавил автоматический запуск скрипта, после изменения значения в ячейке "С3", с помощью Private Sub Worksheet_SelectionChange(ByVal Target As Range).


Но дело в том, что в ячейке "С3" данные меняются согласно формулы, а не ручным вводом, соответственно событие внесения изменений не сбывается, и макрос не запускается. Как только в ячейке "С3" кликнуть мышкой - всё нормально, запуск макроса происходит.

Как сделать автозапуск макроса после анализа содержимого ячеки?
amd3000 вне форума Ответить с цитированием
Старый 27.06.2011, 15:38   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Worksheet_Calculate() не пробовали?
nilem вне форума Ответить с цитированием
Старый 27.06.2011, 15:51   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Чтоб макрос не срабатывал на каждый пересчёт, а только на тот, который привёл к изменению значения проверяемой ячейки, можно задать публичную переменную, в которую при открытии файла взять значение, а потом при пересчёте кодом проверять это значение и при изменении запускать макрос и заносить новое значение.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.06.2011, 16:05   #4
amd3000
Новичок
Джуниор
 
Регистрация: 27.06.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Чтоб макрос не срабатывал на каждый пересчёт, а только на тот, который привёл к изменению значения проверяемой ячейки, можно задать публичную переменную, в которую при открытии файла взять значение, а потом при пересчёте кодом проверять это значение и при изменении запускать макрос и заносить новое значение.
Ткните пожалуйста носом в рабочий пример, а то у меня в связи с нехваткой знаний, что-то фантазия не сильно работает.
amd3000 вне форума Ответить с цитированием
Старый 27.06.2011, 16:27   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ткнуть ничего не нашёл, проще новый пример сочинить.
Вот, на серые не реагирует.

Кстати, можно так задать публичный массив, и сравнивать массивы. Так можно изменения сразу значений диапазона отследить.
Вложения
Тип файла: zip TestPublicVariable.zip (6.8 Кб, 353 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 27.06.2011 в 16:33.
Hugo121 вне форума Ответить с цитированием
Старый 27.06.2011, 16:52   #6
amd3000
Новичок
Джуниор
 
Регистрация: 27.06.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Ткнуть ничего не нашёл, проще новый пример сочинить.
Вот, на серые не реагирует.

Кстати, можно так задать публичный массив, и сравнивать массивы. Так можно изменения сразу значений диапазона отследить.
Мегаоргомное Вам СПАСИБО. Работает
amd3000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск макроса kaa1977 Microsoft Office Excel 5 12.04.2011 10:44
запуск макроса при изменении ячейки Бонни Microsoft Office Excel 2 26.04.2010 11:44
макрос для изменения содержимого ячейки Cawa1990 Microsoft Office Excel 6 24.03.2010 18:19
Запрет изменения содержимого каталог Andrey Безопасность, Шифрование 4 28.09.2009 21:55
Запуск макроса с параметрами из другого макроса Saladin Microsoft Office Excel 2 19.01.2009 09:43