Страницы: 1
RSS
Как заставить CMD после выполнения кода нажать "OK" в msgbox, что вызван макросом в excek?
 
Доброго времени суток. Собственно, САБЖ.

Есть .xlsm , в котором существует макрос, для полного выполнения задания которого задействована еще и командная строка. Необходимо как-то передать из cmd экселю весть о том, что код выполнен и нажать vbOk в msgbox, который умышленно притормаживает выполнение vba-кода, на время работы bat.
Код
sub 123()
for i=1 to 100

        if i = 50 then
           Shell ("C:\Program Files (x86)\Google\Chrome.bat")
           msgbox "Продолжить?", vbOk
           i = 100
        end if

next
end sub
Изменено: falmrom - 22.02.2019 15:13:17
Улыбнись.
 
Поставить здержку выполнения  - не вариант?
 
vikttur, вообще, вариант, но не конкретно в данной ситуации. Время выполнения кода через cmd - НЕИЗВЕСТНО.

Код
             '==============Ожидание загрузки страницы авторизации
             Application.Wait Time:=Now + TimeSerial(0, 0, 5)
             '==============
Изменено: falmrom - 22.02.2019 15:02:47
Улыбнись.
 
использовать не shell, a Wscript.shell
По вопросам из тем форума, личку не читаю.
 
БМВ, а далее? Приведите, пожалуйста, пример.
Улыбнись.
 
А позвольте спросить, где в вашем коде cmd и bat?
 
Андрей VG, поправил.
Код
 Shell ("C:\Program Files (x86)\Google\Chrome.bat")
Изменено: falmrom - 22.02.2019 15:13:30
Улыбнись.
 
Цитата
falmrom написал:
поправил
теперь понятно. Спасибо.
 
можно вызвать окно сообщений, которое умеет закрываться само (через указанное количество миллисекунд)
Код
#If Win64 Then
  Private Declare PtrSafe Function MessageBoxTimeOut Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As LongLong
#Else
  Private Declare Function MessageBoxTimeOut Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
#End If

Sub TmOutMsgbox()
  MessageBoxTimeOut 0, "закроется через " & Cells(1) * 1000 & " миллисекунд", "Это окно", 4, 0, dwMilliseconds:=Cells(1) * 1000
End Sub
Изменено: Ігор Гончаренко - 22.02.2019 15:21:46
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
falmrom написал:
пример
пример есть по ссылке. Метод Exec
 
Код
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run(""C:\Program Files (x86)\Google\Chrome.bat", 0, True)
По вопросам из тем форума, личку не читаю.
 
БМВ, БМВ, Андрей VG, Ігор Гончаренко, нашел. Превосходно справляется с задачей.
http://www.script-coding.com/WSH/WshShell.html#1.        [3.4 RUN]
Код
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
Улыбнись.
 
БМВ, спасибо!
Улыбнись.
 
Андрей VG, exec нужен когда надо читать то, что выводится. а просто дождаться ответа проще через RUN
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
проще через RUN
я не спорю. Последний vbscript написал 3,5 года назад. Время летит. Помню, что мне больше exec подходил.
 
БМВ, подскажите, пожалуйста, как Хрому правильно передать аргумент в виде ссылки, чтобы он воспринял его за адрес и открыл в новой вкладке?
Вариант использовал такой, но он не пашет:
Код
'=======Вызвать объект - ГУГЛ ХРОМ для скачивания отчетов и дальнейшего закрытия=====
Set WshShell = CreateObject("WScript.Shell")
Set ГуглХром = WshShell.Exec("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
ГуглХром.AppActivate ГуглХром.ProcessID
ГуглХром.windowStyle = 3
'====================================================================================
ГуглХром.Arguments = "http://old.ru"
ГуглХром.Arguments = " http://old.ru"
ГуглХром.Arguments = " -http://old.ru"
ГуглХром.Arguments = "-http://old.ru"
Изменено: falmrom - 22.02.2019 16:28:42
Улыбнись.
 
И какое отношение этот вопрос имеет к заявленной теме про MsgBox?
 
Юрий М, вынести этот вопрос в новую тему?
Улыбнись.
 
Если не найдёте подходящей старой темы, то конечно )
 
Вопрос в данном случае касается ключей и аргументов командной строки хрома.
По вопросам из тем форума, личку не читаю.
 
falmrom,  ссылки можно передавать БМВ,
он их будет передавать Хрому, а результаты высылать Вам
как по-мне - отличная схема
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
он их будет передавать Хрому
не сможет, он им не пользуется IE, EDGE последние 1,2,3 …. с 1995го :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх