![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Тут вот такое дело. На листе отслеживаются изменения диапазона и, в зависимости от внесенного в ячейку значения (от 1 до 3), срабатывают макросы. Код такой:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B4:B500")) Is Nothing Then If Target = "1" Then Call Макрос_11 Call SendmailTheBat Call Макрос_12 Call Макрос_13 Call Макрос_14 Call Макрос_15 ElseIf Target = "2" Then Call Макрос_21 Call SendmailTheBat Call Макрос_22 Call Макрос_23 Call Макрос_24 Call Макрос_25 ElseIf Target = "3" Then Call Макрос_31 Call SendmailTheBat Call Макрос_32 Call Макрос_33 Call Макрос_34 Call Макрос_35 End If End If End Sub Попытаюсь сформулировать проблемку. Необходимо отслеживать изменения не в одном диапазоне, а в двух (второй "D4:D500")) и разложить срабатывания макросов. Первые два срабатывают при внесении в диапазон B4:B500 значений 1, 2 или 3, остальные срабатывают при внесении в диапазон D4:D500 любого числа (от 1 до 5000 условно). НО срабатывают в порядке, зависящем от значения, внесенного в диапазон B4:B500. То есть, если в ячейке диапазона B4:B500 стоит 2, то при изменении ячейки той же строки диапазона D4:D500 сработают макросы 22, 23, 24, 25. Фуух. У меня такое впечатление, что я дольше писал тему, чем решать эту задачку. Направьте меня в нужное русло. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Во
![]() Код:
Последний раз редактировалось nilem; 06.01.2012 в 21:55. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Подработал под каждое введенное в столбец В значение, срабатывает. Спасибо за помощь. С Рождеством Христовым!!!
|
![]() |
![]() |
![]() |
#4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Что-то мне подсказывает, что ваши макросы с аналогичыним именами (Макрос_11, Макрос_21, Макрос_31) очень похожи друг на друга.
Вы бы выложили весь код (файл Excel со всеми макросами) - мы бы подсказали, как сократить объём кода в несколько раз (в макрос можно передавать параметры, а вы, судя по коду, этим не пользуетесь) |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Все правильно. Они практически идентичны. Завтра выложу коды и спрошу совета. Спасибо. И с Рождеством Христовым всех форумчан!!!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сложить значения в диапазонах | Vja4eslav | Microsoft Office Excel | 10 | 22.12.2011 12:51 |
сложить значения в диапазонах | Vja4eslav | Microsoft Office Excel | 1 | 20.12.2011 17:04 |
счёт значений в диапазонах | vkharin | Microsoft Office Excel | 1 | 14.02.2011 00:44 |
Подсчет ячеек в именнованных диапазонах | kinogruppa | Microsoft Office Excel | 4 | 14.08.2010 11:49 |
Автоматический запуск макросов с листа на котором указан перечень макросов с параметрами и без | Neoli | Microsoft Office Excel | 2 | 09.03.2009 14:31 |