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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2012, 15:57   #1
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию Процент выполнения макроса (динамический) ?

Есть макрос, который выполняется очень долго (около двух часов обрабатывает инфу с инета).

Как вывести окошко на время выполнения макроса в котором бы динамически отображалось значение переменной ( это значение и будет являться процентом выполнения всего макроса в данный момент).

Т.е. надо:
- вывод сообщения на время выполнения макроса
- в сообщении динамически отображается значение переменной

Как это реализовать? Ни разу не задавался такой целью и не знаю как...
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 04.07.2012, 16:11   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в теле цикла
Код:
application.statusbar = Переменная
смотрите в начале строки статуса. полезная штука пользователь понимает, что процесс идет, а не терзается мыслями "а не зависло-ли все?".

по окончании вычислений верните в строку состояния надпись Готово
Код:
application.statusbar = false
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.07.2012, 16:45   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Можно так:
Код:
Sub test()
    For i = 1 To 100000
        p = i \ 1000
        s = String(p \ 10, ChrW(9632)) & String(10 - p \ 10, ChrW(9633))
        Application.StatusBar = "Выполнено: " & p & "% " & s
        DoEvents
    Next
    Application.StatusBar = False
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 04.07.2012, 21:33   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Более сложное в плане кода, но более наглядное, и простое в использовании, решение по отображению хода выполнения макроса:
http://excelvba.ru/tools/ProgressIndicator

Один раз попробуете, разберетесь, - потом во всех макросах применять будете.
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2012, 22:18   #5
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Огромное спасибо.
Жаль что не получается "плюсануть" т.к. уже...
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Время выполнения макроса... nikolai_P Microsoft Office Excel 9 03.04.2013 00:59
Задержка выполнения макроса. dsharikoff Microsoft Office Excel 7 04.10.2011 22:22
Задержка выполнения макроса MiheyS Microsoft Office Word 11 18.04.2011 00:16
Прекращение выполнения макроса AesmaDiv Microsoft Office Excel 6 12.12.2010 18:30
Пауза выполнения макроса artclon Microsoft Office Excel 3 09.02.2010 05:13