Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пауза в работе макроса / 15 сообщений из 15, страница 1 из 1
16.02.2012, 16:21
    #37665536
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Вопрос:
хочется в процессе выполнения макроса дать возможность пользователю дополнить данные.
т.е.

считаем-считаем

наткнулись на неверные/неполные данные

предупредили пользователя

ждём пока он не даст нам знать что всё нормально

как оформить это ожидание не прерывая работу скрипта?
...
Рейтинг: 0 / 0
16.02.2012, 16:31
    #37665562
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Код: vbnet
1.
Dim CanContinue As Boolean 'глобальная



Код: vbnet
1.
2.
3.
4.
5.
6.
'код....
CanContinue = False
Do Until CanContinue
  DoEvents
Loop
'продолжение кода....


Разрешением продолжения работы скрипта является установка CanContinue в True
...
Рейтинг: 0 / 0
16.02.2012, 18:10
    #37665861
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Shocker.Pro , опасно... а ну как закроет юзер форму ввода, да так, что CanContinue не установится в True?

Если от юзера нужна достаточно простая реакция - лучше использовать MsgBox/InputBox... иначе я бы открывал форму ввода модально и в качестве флага продолжения использовал её IsLoaded.
...
Рейтинг: 0 / 0
16.02.2012, 18:18
    #37665885
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Akina,

Я бы вообще разделял макрос на два, но вишь, ТС не хочет.
MsgBox ему не подойдет - юзер должен что-то сделать.

Ну а закрытие формы - это на усмотрение ТС - мы же не знаем его алгоритмов и причин, которые повлекут установку CanContinue
...
Рейтинг: 0 / 0
17.02.2012, 09:09
    #37666541
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
2: Shocker.Pro
c DoEvent щас попробую...
разделять макрос на 2 куска - не вариант, иначе придется его дробить кусков на 10+ ибо проверок много

2: Akina
нет никакой формы ввода. есть "потоковая" обработка массива Ексель файлов, если в данных косяк. надо остановиться, дать пользователю заролнить/поправить и пустить "поток" дальше.
...
Рейтинг: 0 / 0
17.02.2012, 09:33
    #37666563
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
lu0нет никакой формы ввода. есть "потоковая" обработка массива Ексель файлов, если в данных косяк. надо остановиться, дать пользователю заролнить/поправить
Заполнить/поправить что и где? или он посередь раобты твоего макроса должен полезть в листы и править там исходные данные?

Если так - я бы посоветовал стереть к чертям собачьим весь код и начать писАть заново. Но уже по принципу - сначала проверяем все данные, убеждаемся, что есть всё необходимое для расчётов, и только потом запускаем расчёт - который заведомо не придётся прерывать.
...
Рейтинг: 0 / 0
17.02.2012, 09:45
    #37666579
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Akinaон посередь раобты твоего макроса должен полезть в листы и править там исходные данные
абсолютно точно

Akinaсначала проверяем все данные, убеждаемся, что есть всё необходимое для расчётов, и только потом запускаем расчёт - который заведомо не придётся прерывать.
даже если предположить, что Вы меня убедите, я не смогу убедить руководство увеличить время операции вдвое.
согласитесь, 4часа вместо 2х - это сильно
...
Рейтинг: 0 / 0
17.02.2012, 09:50
    #37666587
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Вашему руководству нужны шашечки?.. а то, что они на тракторе - никого не интересует?
...
Рейтинг: 0 / 0
17.02.2012, 09:59
    #37666599
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
lu04часа вместо 2х - это сильноа может сократить время до 5 минут?
...
Рейтинг: 0 / 0
17.02.2012, 10:01
    #37666604
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
AndreTMВашему руководству нужны шашечки?.. а то, что они на тракторе - никого не интересует?
нужен результат. в приемлимое время.

сравните:
1. после запуска процесса оператор 1-2 раза по сигналу подойдёт и исправит букву в названии - это займёт 2 часа
2. запускается проверка на 2 часа оператор вносит те-же 2 исправления, которых, кстати, может и не быть, а ПОТОМ идёт загрузка ещё на 2 часа ...

а теперь пойдите и убедите "своё" руководство, что теперь благодаря более правильному и логичному коду, на переписку которого, кстати, тоже было потрачено время, господин начальнок будет получать отчёт, с которым ему идти выше на 2 часа пожже.
подсказать куда вас отправят ???
...
Рейтинг: 0 / 0
17.02.2012, 10:03
    #37666606
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Shocker.Prolu04часа вместо 2х - это сильноа может сократить время до 5 минут?
основные временные издержки идут на открытии/закрытии файлов, коих несколько раз по 300-400 штук
...
Рейтинг: 0 / 0
17.02.2012, 10:31
    #37666646
Дмит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
Макрос на 2 часа это что-то!
Я не знаю Ваши задачи, но думаю надо менять принципы обработки данных и может быть и технологии. На крайний случай уйти от макросов к компилируемому коду. Сугубо моё мнение.
...
Рейтинг: 0 / 0
17.02.2012, 10:50
    #37666687
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
ДмитМакрос на 2 часа это что-то!
Я не знаю Ваши задачи, но думаю надо менять принципы обработки данных и может быть и технологии. На крайний случай уйти от макросов к компилируемому коду. Сугубо моё мнение.
абсолюно с Вами согласен ... но пока нет свободного времени на переработку...
вот и "подпиливаю надфилем" чо есть
...
Рейтинг: 0 / 0
17.02.2012, 13:28
    #37667109
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
lu02: Shocker.Pro
c DoEvent щас попробую...

попробывал ... всё нормально, только вот Application.OnKey не корректно отрабатывает. Видно, что перехват идёт, но в указанную процедуру не попадает.
...
Рейтинг: 0 / 0
17.02.2012, 13:38
    #37667140
lu0
lu0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пауза в работе макроса
нашол решение.
всем спасибо
закрывайте
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пауза в работе макроса / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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