powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как запустить макрос посе редактирования одной из группы ячеек
21 сообщений из 21, страница 1 из 1
Как запустить макрос посе редактирования одной из группы ячеек
    #36290948
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите начинающему. Плиз!
Как запустить макрос после выхода из группы ячеек, при условии что в одной из них было произведено изменение, (предположим что контролируемые ячейки находятся в первых двух колонках в 5 первых строчках.
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291001
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Max_FrПомогите начинающему. Плиз!
Как запустить макрос после выхода из группы ячеек, при условии что в одной из них было произведено изменение, (предположим что контролируемые ячейки находятся в первых двух колонках в 5 первых строчках.
Давайте проясним. У Вас есть по сути 2 массива ячеек:
1) А1:В5
2) Все остальное
Возможны четыре варианта:
1) Изменение было в одной из ячеек первого массива и затем была выбрана ячейка в пределах этого же массива
2) Изменение было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива
3) Изменения не было в одной из ячеек первого массива и затем была выбрана ячейка в пределах этого же массива
4) Изменения не было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива

В каком из этих случаев должен запуститься макрос ? Во втором варианте?
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291008
Фотография W_I_N_T_E_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Лист1 добавляете код:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B5")) Is Nothing Then
MsgBox "Макрос запущен!" 'Вот тут запуск макроса
End If
End Sub
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291010
Фотография W_I_N_T_E_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см.файл
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291332
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
W_I_N_T_E_R,
Спасибо, подобного результата мне удалось добиться, вот таким способом:

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Address = "А1:В5") Then
Application.EnableEvents = False
MsgBox (" ")
Application.EnableEvents = True
End If
End Sub

наверно я не корректно сформулировал вопрос, задача запускать макрос в момент потери фокуса массивом (так называется в Аксесе, как в Екселе пока не знаю, недавно залез в эту область в нем), при выходе из него как минимум, как максимум запустить при выходе, при условии что были сделаны изменения в массиве, (объясню почему такая задача, макрос который нужно запустить выполняется 12-15 секунд, и при этом соответственно блокирует все действия в таблице, назвать это неудобством слишком скромно....)
Пробовал запускать эту функцию в Private Sub Worksheet_Deactivate() от туда не работает.
Есть ли вариант решения моей задачи? (использовать запуск с кнопки не лучший вариант)
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291422
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Max_Frнаверно я не корректно сформулировал вопрос
Наверное (и так и не захотели прояснить задачу, хотя я преложил Вам), и дальше запутали еще больше...
Max_Fr...задача запускать макрос в момент потери фокуса массивом...
Max_Fr...как максимум запустить при выходе ... - это получение фокуса.

Если же Вам нужно такое:
m2) Изменение было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива ( выбрана сразу же , то есть без нажатия Enter, а выделена другая ячейка за пределами массива)
Тогда, измените код от W_I_N_T_E_R вот здесь:
Код: plaintext
If Not Intersect(Target, Range("A1:B5")) Is Nothing Then
на
Код: plaintext
If Intersect(Selection, Range("A1:B5")) Is Nothing Then
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291449
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
mТогда, измените код от W_I_N_T_E_R вот здесь
Сорри, не измените, а добавьте мою строчку...
Вообщем, вот так должно быть:
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B5")) Is Nothing Then
If Intersect(Selection, Range("A1:B5")) Is Nothing Then
MsgBox "Макрос запущен!"
End If
End If
End Sub
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291518
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
возвращаясь к предложенному списку + дополнение
1) Изменение было в одной из ячеек первого массива и затем была выбрана ячейка в пределах этого же массива ( макрос не запускаем)
2) Изменение было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива (макрос запускаем)
3) Изменения не было в одной из ячеек первого массива и затем была выбрана ячейка в пределах этого же массива ( макрос не запускаем)
4) Изменения не было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива ( макрос не запускаем)

Наиболее подходящий вариант №2 - Изменение было в одной из ячеек первого массива и затем была выбрана ячейка за пределом первого массива - с предложенной корекцией кода все отлично заработало -ОК!
- но - после изменений в одной из ячеек массива и переходе в следующую ячейку того же массива , не производя в ней изменений, далее выход из массива - макрос не запускается а должен, ведь внутри массива изменения производились.
Можно ли дополнить коррекцию кода чтоб эти условия выполнялись.
Заранее благодарю!
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291554
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
при изменении тоже работает, тенкс, но главную задачу к сожалению не выполняет,..
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291569
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Я вижу такой вариант:
Создаем скрытый лист со значениями из массива А1:В5
В момент, когда происходи выделение ячейки за пределами массива в активном (не скрытом) листе, макрос сверяет существующие значения в массиве А1:В5 со значениями, занесенными туда ранее. Если они не совпадают, тогда значения в скрытом листе переписуются и запускается макрос. Если совпадают, ничего не происходит. Такое подходит ?
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291573
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть в коде еще неприятная мелочь - при удалении (Delete) данных из ячейки не воспринимается как изменение, странно. MsgBox - нет запуска
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291589
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
как вариант, почему бы и нет, тем более что есть возможность сделать это и на том же листе в скрытой зоне, где живут все формулы ( для упрощения задачи)...
вопрос как это воплотить в коде (когда знания VBA на уровне 1 %) опять же нужна помощь знатока.
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291675
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
в приложенном файле вариант в таблицы
вопрос как проверить Н9, и при нарушении запустить MsgBox ?
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291686
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,m,
в приложенном файле вариант в таблицы
вопрос как проверить Н9 после выхода из массива, и при нарушении запустить MsgBox ?
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291690
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max_Fr,
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36291829
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
принимайте... немного изменил расположение на листе... разбиретесь. Появился еще один индикатор. Попробуйте разобраться зачем он нужен.
Тестируйте.
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36292065
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
Огромное СПАСИБО.
отдельное спасибо за "фокус" с циклом MsgBox, пришлось повнимательней почитать код, в поисках заложенной ошибки (в другом месте), на SendKeys реагирует также как и на Enter, благодарю за урок.
моя проблема решена, осталось отредактировать под мою задачу и немного упростить (удалось облегчить задачу оставив в качестве массива один столбец.)
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36292127
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Max_Frна SendKeys реагирует также как и на Enter, благодарю за урок
А Вы мне расскажите, в чем урок-то был ? :)... И про SendKeys, что Вы имели ввиду? Я SendKeys использовал чтобы "развыделить" диапазон после копирования (чтоб не бегали муравьи)...
ТСпришлось повнимательней почитать код, в поисках заложенной ошибки (в другом месте)
И тут опять неясно :)...
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36292972
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все окей, все работает.
но при усложнении задачи, увеличение количества таких массивов столкнуся с проблемой, что простым копированием макроса с изменением адресов ячеек приводит к неработоспособности макроса, встал вопрос как его исправить, как определить в нем эти массивы, Вопрос что изменить в макросе для корректной работы.
mИ тут опять неясно :)...
повторюсь в комментарии - я еще только учусь
С благодарностью за помощь и обучение.
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36294022
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Смотрите вложение...
Старайтесь объявлять все переменные в одной группе (в самом начале) и давать им внятные названия. Также, по возможности, применяйте циклы.
Ну и главной не останавливайтесь на достигнутом :) ! Учитесь, учитесь и еще раз учитесь!
...
Рейтинг: 0 / 0
Как запустить макрос посе редактирования одной из группы ячеек
    #36295706
Max_Fr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m,
Еще раз огромное СПАСИБО!
профессиональный подход, профессиональное решение!, с уважением!
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как запустить макрос посе редактирования одной из группы ячеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]