Usuário com melhor resposta
Criar uma nova instância para novos arquivos abertos após um Workbook especifico ter sido aberto

Pergunta
-
Oi Pessoal. Mais uma ajuda.
Não sei se é possível, mas vamos lá!
Desenvolvi uma ferramenta que trabalha toda em formulário. E com isso deixa oculta a instância do Excel dela.
Quando essa ferramenta abre, ela abre em uma instância a parte. Mas se qualquer arquivo é aberto posteriormente a ele, é aberto na instância dessa ferramenta, e consequentemente esse novo workbook não é visualizado.
Existe alguma forma de eu programar para que se um novo Workbook abrir após essa ferramenta esteja aberta, esse Workbook abrir em uma nova instância?
Uma ideia é se, eu quiser selecionar o Workbook pela ordem que ele foi aberto, eu apenas utilizo Workbook(1). Existiria algo parecido com Application (ou estou viajando na maionese)?
Respostas
-
Pessoal, achei um jeito de resolver meu problema.
Caso vocês achem que pode dar algum problema ou que existe algum meio melhor, me avisem.
Como a ferramenta abre em uma nova Instância, eu fiz o seguinte. Após ela abrir eu uso a função abaixo:
Private Sub Workbook_Open() Application.DisplayAlerts=False Application.ShowWindowsInTaskbar = False Application.IgnoreRemoteRequests = True End Sub
E quando for encerrar utilizo o de baixo (O encerramento da planilha fica no próprio Userform):
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim Resultado As VbMsgBoxResult Resultado = MsgBox("Deseja realmente sair?", vbQuestion + vbYesNo, TitleWork) If Resultado = vbNo Then Cancel = True: Exit Sub Application.DisplayAlerts = False Application.ShowWindowsInTaskbar = True Application.IgnoreRemoteRequests = False Application.Quit End Sub
Com isso conseguir resolver meu problema!
:D
- Marcado como Resposta Pietro Farias - Analista X quarta-feira, 15 de abril de 2015 21:09
Todas as Respostas
-
Pessoal, achei um jeito de resolver meu problema.
Caso vocês achem que pode dar algum problema ou que existe algum meio melhor, me avisem.
Como a ferramenta abre em uma nova Instância, eu fiz o seguinte. Após ela abrir eu uso a função abaixo:
Private Sub Workbook_Open() Application.DisplayAlerts=False Application.ShowWindowsInTaskbar = False Application.IgnoreRemoteRequests = True End Sub
E quando for encerrar utilizo o de baixo (O encerramento da planilha fica no próprio Userform):
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim Resultado As VbMsgBoxResult Resultado = MsgBox("Deseja realmente sair?", vbQuestion + vbYesNo, TitleWork) If Resultado = vbNo Then Cancel = True: Exit Sub Application.DisplayAlerts = False Application.ShowWindowsInTaskbar = True Application.IgnoreRemoteRequests = False Application.Quit End Sub
Com isso conseguir resolver meu problema!
:D
- Marcado como Resposta Pietro Farias - Analista X quarta-feira, 15 de abril de 2015 21:09
-
-
Legal, não sabia dessa. O que eu fazia, normalmente, era abrir a ferramenta por uma nova instância no Excel usando Windows+R.
Eu também. Mas como a ferramenta que desenvolvi era para dezenas de pessoas usarem, sempre existe aquela necessidade de abrir alguma planilha para tirar alguma duvida sobre os dados. ai conseguir fazer desse jeito.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Pessoal, achei um jeito de resolver meu problema.
Caso vocês achem que pode dar algum problema ou que existe algum meio melhor, me avisem.
Como a ferramenta abre em uma nova Instância, eu fiz o seguinte. Após ela abrir eu uso a função abaixo:
Private Sub Workbook_Open() Application.DisplayAlerts=False Application.ShowWindowsInTaskbar = False Application.IgnoreRemoteRequests = True End Sub
E quando for encerrar utilizo o de baixo (O encerramento da planilha fica no próprio Userform):
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim Resultado As VbMsgBoxResult Resultado = MsgBox("Deseja realmente sair?", vbQuestion + vbYesNo, TitleWork) If Resultado = vbNo Then Cancel = True: Exit Sub Application.DisplayAlerts = False Application.ShowWindowsInTaskbar = True Application.IgnoreRemoteRequests = False Application.Quit End Sub
Com isso conseguir resolver meu problema!
:D