Привет люди!! у меня вопрос, как сделать всплывающее окно, чтоб при запуске макроса в нем отображалось кол-во пройденных (или оставшихся) циклов?? [vba]
Код
Sub XXX() blablabla For i = 1 To 100 blablabla Next i
[/vba] и чтоб это окно можно было закрыть только принудительно, ну чтоб оно самостоятельно не закрывалось после выполнения всех циклов!!!
Привет люди!! у меня вопрос, как сделать всплывающее окно, чтоб при запуске макроса в нем отображалось кол-во пройденных (или оставшихся) циклов?? [vba]
Код
Sub XXX() blablabla For i = 1 To 100 blablabla Next i
[/vba] и чтоб это окно можно было закрыть только принудительно, ну чтоб оно самостоятельно не закрывалось после выполнения всех циклов!!!Tina90
Спасибо!! я вечером протестирую предложенный Вами вариант! мне это нужно, чтоб визуально определять сколько еще часов комп будет занят выполнением макроса, чтоб не ждать и пересаживаться за другой комп и играть это время в WOW или Zanzarah !!!
Спасибо!! я вечером протестирую предложенный Вами вариант! мне это нужно, чтоб визуально определять сколько еще часов комп будет занят выполнением макроса, чтоб не ждать и пересаживаться за другой комп и играть это время в WOW или Zanzarah !!! Tina90
При появлении окна макрос остановит свое выполнение и продолжит работу только после того, как Вы нажмете ОК!
нет!!!!! мне нужно чтоб макрос не прерывался и не ждал от меня каких то нажатий в процессе выполнения циклов!! он должен продолжать делать циклы, просто визуально чтоб я видела сколько еще осталось и закрыла его в конце после завершения (или это вообще не надо, чтоб закрывался вручную, важно чтоб висел в процессе и давал видеть сколько еще циклов осталось)!!! (у меня все максимально оптимизировано, просто коипы заточены под видео а не математику! может когда куплю комп с мат сопроцессором) :D [moder]
При появлении окна макрос остановит свое выполнение и продолжит работу только после того, как Вы нажмете ОК!
нет!!!!! мне нужно чтоб макрос не прерывался и не ждал от меня каких то нажатий в процессе выполнения циклов!! он должен продолжать делать циклы, просто визуально чтоб я видела сколько еще осталось и закрыла его в конце после завершения (или это вообще не надо, чтоб закрывался вручную, важно чтоб висел в процессе и давал видеть сколько еще циклов осталось)!!! (у меня все максимально оптимизировано, просто коипы заточены под видео а не математику! может когда куплю комп с мат сопроцессором) :D [moder]
Public i, n Sub test() n = 10 UserForm1.Show 0 For i = 1 To n Application.Wait (Now + TimeValue("0:00:01 ")) 'Имитация выполнения какого-то кода UserForm1.Label1 = "Пройдено " & i & ", осталось " & n - i DoEvents Next i UserForm1.Label1 = "ГОТОВО!" End Sub
[/vba]
Tina90, можно сделать маленькую юзерформу: [vba]
Код
Public i, n Sub test() n = 10 UserForm1.Show 0 For i = 1 To n Application.Wait (Now + TimeValue("0:00:01 ")) 'Имитация выполнения какого-то кода UserForm1.Label1 = "Пройдено " & i & ", осталось " & n - i DoEvents Next i UserForm1.Label1 = "ГОТОВО!" End Sub
шутка. asus transformer, 1.3 по моему! 4 Гб РОМ. еще asus F9E, HP лень смотреть какой с полудохлой акб, Samsung NF310 1.2 + 2G Rom вообще тормоз. лучше всего работает в Экселе Трансформер!
шутка. asus transformer, 1.3 по моему! 4 Гб РОМ. еще asus F9E, HP лень смотреть какой с полудохлой акб, Samsung NF310 1.2 + 2G Rom вообще тормоз. лучше всего работает в Экселе Трансформер!Tina90
Ну, собственно в 5-м посте уже есть те строки, которые хотелось высказать. Что-то вы не так делаете в своём секретном файле. Набросали бы примерчик, и свой макрос не забыли вложить - нашлись бы народные умельцы и довели до ума код.
Ну, собственно в 5-м посте уже есть те строки, которые хотелось высказать. Что-то вы не так делаете в своём секретном файле. Набросали бы примерчик, и свой макрос не забыли вложить - нашлись бы народные умельцы и довели до ума код.wild_pig
А я стараюсь не использовать юзерформы в простых проектах, есть же "специальное место" - статусбар : На основе макроса от Manyasha, : [vba]
Код
Sub test() n = 10 For i = 1 To n Application.Wait (Now + TimeValue("0:00:01 ")) 'Имитация выполнения какого-то кода Application.StatusBar = Format(i / n, "0%") & ". Пройдено " & i & ", осталось " & n - i DoEvents Next i Application.StatusBar = False End Sub
[/vba] ЗЫ Manyasha, в Ваш код еще repaint лучше добавлять - просто так форма не всегда обновляется.
А я стараюсь не использовать юзерформы в простых проектах, есть же "специальное место" - статусбар : На основе макроса от Manyasha, : [vba]
Код
Sub test() n = 10 For i = 1 To n Application.Wait (Now + TimeValue("0:00:01 ")) 'Имитация выполнения какого-то кода Application.StatusBar = Format(i / n, "0%") & ". Пройдено " & i & ", осталось " & n - i DoEvents Next i Application.StatusBar = False End Sub
[/vba] ЗЫ Manyasha, в Ваш код еще repaint лучше добавлять - просто так форма не всегда обновляется. SLAVICK
Можно ещё добавить - если цикл быстрый но долгий, то если выводить на обозрение каждый шаг - это заметно замедлит основную работу. Тогда можно выводить только каждый 100-й, 333-й или 1000-й шаг. [moder][offtop]
Можно ещё добавить - если цикл быстрый но долгий, то если выводить на обозрение каждый шаг - это заметно замедлит основную работу. Тогда можно выводить только каждый 100-й, 333-й или 1000-й шаг. [moder][offtop]
Ну не знаю. Я, в последнее время, если вывожу юзерформу с отрисовкой этапа процесса - окно Excel вообще прячу - так и быстрее и не видно ничего лишнего, и "наклацать" пользователи не смогут.
Саш имеется ввиду быстро изменяемая переменная, в длинном цикле. [offtop]Борода: Да понял я, понял, не дурней паровоза . Но звучит-то как! Я исключительно про это. [/offtop] Вот если к примеру нужно пройти цикл в 1млн, то вывод состояния существенно замедлит работу. Вот такой каламбурчик
Ну не знаю. Я, в последнее время, если вывожу юзерформу с отрисовкой этапа процесса - окно Excel вообще прячу - так и быстрее и не видно ничего лишнего, и "наклацать" пользователи не смогут.
Саш имеется ввиду быстро изменяемая переменная, в длинном цикле. [offtop]Борода: Да понял я, понял, не дурней паровоза . Но звучит-то как! Я исключительно про это. [/offtop] Вот если к примеру нужно пройти цикл в 1млн, то вывод состояния существенно замедлит работу. Вот такой каламбурчик
:) Вызывает когнитивный диссонанс? Оксюморон? :) Но ведь понятно - бежит быстро, но оочень долго... Потому что если быстро и быстро - нет нужды выводить вообще :) Если бежит медленно - тогда можно выводить каждый шаг, особо не повлияет.
:) Вызывает когнитивный диссонанс? Оксюморон? :) Но ведь понятно - бежит быстро, но оочень долго... Потому что если быстро и быстро - нет нужды выводить вообще :) Если бежит медленно - тогда можно выводить каждый шаг, особо не повлияет.Hugo