Страницы: 1
RSS
Пока макрос работает, чтоб висело окон с текстом "Руки ФУ!"
 
:-)  
коллеги, добрый день!  
не подкините буковок, что в коде надо дописать-прописать, чтобы пока он работает (а это долго), чтоб поперек экрана висело здоровенное окно яркого цвета и режущими глаза буквами- "руки убери от компа! макрос еще работает!"  
и чтоб юзера током било, если он хочет на крестик тыкнуть или кнопку ескейп нажать :-)  
 
ну или что-то в этом духе :-)
 
Добрый день!  
 
Игнорируем ввод:  
Application.EnableCancelKey = 0  
Не забываем вернуть:  
Application.EnableCancelKey = 1  
 
Для пользовательской формы есть событие UserForm_Terminate, где при её закрытии выполняем какое-либо действие, например:  
Shell ("Душещипательная_картинка_с_диким_воплем")
 
забавный эффект от этих магических строчек  
Application.EnableCancelKey = 0  
Application.EnableCancelKey = 1  
 
книго еще не открылось, тыкаешь в крестик, она по-тихому продолжает открываться... а потом так же тихо закрывается    
:-)  
 
(не забываем, что в макросах мазаи не сильны ваще)  
 
может картинко повесим на экран?  
что надо для этого написать в начале кода, а что в конце, чтобы картинко убрать?  
низко кланяюсь и благодарю (заранее)  
:-)
 
{quote}{login=mazayZR}{date=01.09.2008 12:48}{thema=}{post}  
что надо для этого написать в начале кода, а что в конце, чтобы картинко убрать?{/post}{/quote}  
 
В начале:  
Shell ("""" & Application.Path & "\OIS.EXE"" """ & ActiveWorkbook.Path & "\Картинки\РукиФУ.jpg" & """")  
 
В конце:  
Shell ("tskill ois")
 
Мазай, а что если совместить "приятное с полезным": привинтить прогрессбар а на форму ещё добавить неприличную надпись? И ход процесса отображается, и грозное напоминание висит (можно ещё и картинку соответствующую неприличной надписи).
 
мдя...  
во-первых, я эти волшебные строки вставил не в тот код :-)  
во-вторых, они (уже в нужном коде), работаеют хорошо и как надо  
 
в-третьих, дебургер раскрашивает желтеньким эту строчку  
Shell ("tskill ois")  
и пишет ран тайм ерор 53  
файл нот фаунд.  
перед этим пытается запустить пикчер менеджер (ну чтоб картинку из той же папки, где рабочая книга, показать).  
и ни шиша  
:-)  
пожалуй закончим, магические строчки    
Application.EnableCancelKey = 0  
Application.EnableCancelKey = 1  
вполне справляются с поставленной задачей    
спасибо!
 
{quote}{login=Юрий М}{date=01.09.2008 01:06}{thema=}{post}Мазай, а что если совместить "приятное с полезным": привинтить прогрессбар а на форму ещё добавить неприличную надпись? И ход процесса отображается, и грозное напоминание висит (можно ещё и картинку соответствующую неприличной надписи).{/post}{/quote}  
Юрий, я не зря сказал, что мазаи в макросах так себе весьма ;-)  
мнеб тогда готовый кусочек мёда, то есть кода  
а я его бы и прикрутил :-)
 
Ща сброшу образцы
 
Вот три штуки. Нужна ли помощь доработать форму?
 
{quote}{login=mazayZR}{date=01.09.2008 01:08}{thema=}{post}дебургер раскрашивает желтеньким эту строчку  
Shell ("tskill ois")  
и пишет ран тайм ерор 53  
файл нот фаунд.{/post}{/quote}  
А картинка открыта перед окрашиванием в жёлтый? Попробуйте строки, указанные в кавычках, пощёлкать в консоли cmd. Может от Винды зависеть, наверно:  
Shell ("taskkill ois")  
Shell ("taskkill ois.exe")  
Или также с полным путём к ois, или какой там у вас просмотрщик?  
 
На крайняк:  
SendKeys "%{F4}" 'Alt+F4  
 
Способ с левыми прогами через Пуск -> Выполнить (Shell) хорош тем, что пользователю, кроме картинки, можно показывать экранную заставку или мультики, пока Ваш тягомотный макрос выполняет свои задачи :)
 
{quote}{login=Юрий М}{date=01.09.2008 01:13}{thema=}{post}Вот три штуки. Нужна ли помощь доработать форму?{/post}{/quote}  
- создать юзер форму с "червяком"  
- в начало (?) макроса, который должен показывать эту картинку, вставить "Call UpdateProgress(PctDone)"  
- и в модуль этот код?  
 
Sub UpdateProgress(Pct)  
With UserForm1  
.FrameProgress.Caption = Format(Pct, "0%")  
.LabelProgress.Width = Pct * (.FrameProgress.Width - 10)  
.Repaint  
End With  
End Sub  
 
так?  
что не так? ибо ругается на нуль или еще какую фигню...
 
ну надо... :-)  
и ведь ни одна живая душа в "Приемы" не послала... а там готовый ответ (ну почти готовый)    
 
http://www.planetaexcel.ru/tip.php?aid=100
 
{quote}{login=mazayZR}{date=01.09.2008 04:35}{thema=}{post}а там готовый ответ (ну почти готовый){/post}{/quote}  
 
Какая разница что отображать на форме: картинку (как у Николая) или прогресс бар (как у Юрия)? А вот, например, пляшущие автофигуры это уже не хухры-мухры :))  
 
А послать завсегда успеется...
 
разницы никакой, ибо я все равно ничего не понял и забил на эту затею.  
однако за участие спасибо  
ЗЫ: николаев вариант заработал только на половину, то есть картинко показалось,а вот закрываться не желает
 
Мазай! Может ему (юзеру) просто не давать без всяких окон?  
VBA: Как на время выполнения макроса заблокировать клавиатуру и мышку, сохранив, при этом, возможность использования диалоговых окон ?  
http://www.msoffice.nm.ru/faq/macros/miscellaneous.htm#faq371
 
вот это чтоль?  
Application.Interactive = False    
'Здесь должен быть код Вашей программы.    
Application.Interactive = True  
никак не могу понять принцип, по которому там ответы показываются :-)
 
Оно.  
Жаль что у них вопрос не дублируется перед ответом.
 
Мне как "чайнику" очень познавательно:)  
 
Подскажите пожалуйста, как в    
Shell ("""" & Application.Path & "\OIS.EXE"" """ & ActiveWorkbook.Path & "\Картинки\РукиФУ.jpg" & """")  
 
в первой части прописать путь (чтобы открывалось в этих программах), например, к mspaint.exe или блокноту, вобщем, к какой-нибудь другой программе.  
 
У меня постоянно ошибка вылетает...  
 
Спасибо!
Страницы: 1
Читают тему
Наверх