Após executar todos Shell, voltar para o Formulario
Enviado: 20 Out 2016 às 10:28
por badchico
Bom dia caros!
Existem algum comando que após executar todos os processos da chamada Shell, ele volte para o Excel, pois as janelas ficam todas sobrepostas.
Seria a ideia de ALT + TAB (ir para o Excel)
Obrigado;
Re: Após executar todos Shell, voltar para o Formulario
Enviado: 20 Out 2016 às 10:41
por alexandrevba
Bom dia!!
Eu não sei se entendi, mas eu creio que você terá que usar uma API.
Mas já tentou ativar o arquivo com
Activate etc?
Código: Selecionar todosThisWorkbook.Activate
ActiveWindow.WindowState = xlMaximized
Att
Após executar todos Shell, voltar para o Formulario
Enviado: 20 Out 2016 às 10:50
por badchico
Opa Alexandre, blz?
Então, eu criei um form dentro do excel, para abrir todas a minha aplicações aqui no trabalho e fazer o login, porem vai abrindo todas elas e logando, e o excel ficando pra trás, gostaria que no final do processo, voltasse para o excel e exibia a mensagem finalizado, a mensagem já coloquei, mais tenho que ir la no excel para ser exibida.
o comando que vc passou não deu certo, ainda continua sobrepondo meu Form
Re: Após executar todos Shell, voltar para o Formulario
Enviado: 20 Out 2016 às 12:13
por alexandrevba
Boa tarde!!
Eu não como está as rotinas e as propriedades dos objetos...em seu projeto.
http://www.jkp-ads.com/Articles/apideclarations.asp
Código: Selecionar todos'Use esse código dentro de um módulo
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_TOP = 0
Public Const HWND_BOTTOM = 1
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Declare Function SetWindowPos Lib "user32" _
(ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal uFlags As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Código: Selecionar todosPrivate Sub UserForm_Initialize()
'Use esse código dentro do Userform
Const C_VBA6_USERFORM_CLASSNAME = "ThunderDFrame"
Dim ret As Long
Dim formHWnd As Long
formHWnd = FindWindow(C_VBA6_USERFORM_CLASSNAME, Me.Caption)
If formHWnd = 0 Then
Debug.Print Err.LastDllError
End If
ret = SetWindowPos(formHWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
If ret = 0 Then
Debug.Print Err.LastDllError
End If
End Sub
Faça os testes em uma cópida do arquivo e projeto original, faça as referências necessárias, talvez isso te ajude em algo.
Att