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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 17:08   #11
Sotrom
Новичок
Джуниор
 
Регистрация: 10.08.2011
Сообщений: 7
Хорошо

Вот! Заработало! Спасибо!
Вставляю конечную рабочую версию кода.

Код:
Sub Monte_Karlo()
'
' Monte_Karlo Макрос

MasageOK_NO = MsgBox("Сейчас начнется расчет 5000 значений выбранных показателей модели методом Монте-Карло. На расчет потребуется несколько минут. Продолжить?", vbYesNo, "МОНТЕ-КАРЛО")
If MasageOK_NO = 7 Then GoTo Конец
Application.ScreenUpdating = False
Dim x As Variant
Dim a
'Dim t: t = Timer
For x = 20 To 5019
a = Range(Cells(x, 2), Cells(x, 7))
[B19:G19] = a
Cells(x, 8) = Range("H19")
Cells(x, 9) = Range("I19")
Next x
[B19:G19] = 1
Конец_расчета:
'Debug.Print Timer - t
MsgBox "Расчет окончен!"
Application.ScreenUpdating = True
Exit Sub
Конец:
MsgBox "Расчет прерван", , "МОНТЕ-КАРЛО"

End Sub
Sotrom вне форума Ответить с цитированием
Старый 10.08.2011, 17:12   #12
Sotrom
Новичок
Джуниор
 
Регистрация: 10.08.2011
Сообщений: 7
По умолчанию

Учитывая длительность времени выполнения макроса возможно ли вывести на экран ход его выполнения? Например, показывать сколько вариантов в цикле уже прошло. А то совсем грустно сидеть перед фактически зависшим экраном.
Sotrom вне форума Ответить с цитированием
Старый 10.08.2011, 17:19   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Добавил 2 строки
Код:
Sub Monte_Karlo2()
'
' Monte_Karlo Макрос
Dim a
MasageOK_NO = MsgBox("Сейчас начнется расчет 5000 значений выбранных показателей модели методом Монте-Карло. На расчет потребуется несколько минут. Продолжить?", vbYesNo, "МОНТЕ-КАРЛО")
If MasageOK_NO = 7 Then GoTo Конец
Application.ScreenUpdating = False
Dim x As Variant
'Dim t: t = Timer
For x = 20 To 60 '5019
Application.StatusBar = "Считаем строку " & x
a = Range(Cells(x, 2), Cells(x, 7))
[B19:G19] = a
Cells(x, 8) = Range("H19")
Cells(x, 9) = Range("I19")
Next x
[B19:G19] = 1
Конец_расчета:
'Debug.Print Timer - t
MsgBox "Расчет окончен!"
Application.ScreenUpdating = True
Application.StatusBar = False
Exit Sub
Конец:
MsgBox "Расчет прерван", , "МОНТЕ-КАРЛО"
End Sub
Будет выводиться в статусбаре слева внизу, где обычно "Ready" написано.

Можно ещё прогрессбар навесить, но это уже не 2 строки...

P.S. Добавил прогрессбар. Он не мой, но к сожалению автора не записал - искал по имени файла (прогрессбар - простая форма, открытый код post_245628.xls) на Планете, но не нашёл...
В архиве два файла - прогрессбар в чистом виде и уже при деле. В Вашем файле модуль для прогрессбара не нужен - только форма и чуть кода в основном макросе.
Вложения
Тип файла: rar Test.rar (32.3 Кб, 15 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 10.08.2011 в 17:42.
Hugo121 вне форума Ответить с цитированием
Старый 10.08.2011, 17:29   #14
Sotrom
Новичок
Джуниор
 
Регистрация: 10.08.2011
Сообщений: 7
По умолчанию

Отлично! То что нужно.
Спасибо!
Sotrom вне форума Ответить с цитированием
Старый 10.08.2011, 17:44   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Дописал немного в последний пост - посмотрите
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Медленный выход приложения (многопоточность) YarUnderoaker Общие вопросы Delphi 1 15.10.2010 16:57
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51
Макрос, запускающий макрос из другого закрытого файла petruha Microsoft Office Excel 7 14.03.2010 11:31
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51