VERIFICAR SE EXISTE ALGUMA PLANILHA ABERTA

ALANTYKHE 21/01/2014 08:35:30
#433308
Olá pessoal,

Tenho uma planilha que quando abre redimensiona a planilha e a esconde atrás do formulário que também é aberto automaticamente. Após fechar o formulário eu preciso que a pasta de trabalho seja fechada. Aí que surge o problema, pois se eu uso o Application.Quit ele fecha todas as planilhas, mas eu quero fechar apenas a planilha do form; se eu uso o ActiveWorkbooks.Close ele fecha a planilha do form, mas o excel permanece aberto na tela cinza caso não haja outra planilha aberta.

Isso pode ser solucionado identificando a condição: se há ou não outra planilha qualquer aberta e em seguida utilizando o código adequado se sim (ActiveWorkbook.Close) e se não (Application.Quit), mas não conheço nenhum código que faz isso, alguém pode ajudar? Uma chamada API talvez?
PEDROALSOI 21/01/2014 08:47:38
#433310
Vê se isso te ajuda:

migre.me/hx7Y3
ALANTYKHE 21/01/2014 09:58:19
#433320
Estou no trabalho, não consigo acessar o link, pode postar o código?

Obrigado
TUNUSAT 11/02/2014 08:38:57
#434531
ALANTYKHE,

Por favor, veja se funciona na sua máquina:

   
Declare Function FindWindow Lib [Ô]user32[Ô] Alias [Ô]FindWindowA[Ô] (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Public Function puVerificarTarefas() As Integer
[ô]------------------------------------------------------------------------
[ô]*/Objetivo: Verifica se existe algum aplicativo ativo. */
[ô]*/ (Word, Excel ou Outlook) */
[ô]------------------------------------------------------------------------

Dim lngreturnWord As Long
Dim lngreturnExcel As Long
Dim lngreturnOutlook As Long
Dim strMsg As String


lngreturnWord = FindWindow([Ô]OpusApp[Ô], vbNullString)
lngreturnExcel = FindWindow([Ô]XLMain[Ô], vbNullString)
lngreturnOutlook = FindWindow([Ô]rctrl_renwnd32[Ô], vbNullString)

strMsg = [Ô]Deseja finalizar o Sistema?[Ô]

If lngreturnWord <> 0 Or lngreturnExcel <> 0 Or lngreturnOutlook <> 0 Then
strMsg = [Ô]O Sistema detectou que os aplicativos Word/Excel/M@AIL estão abertos, [Ô] & Chr(13) & _
[Ô]certifique-se se algum documento precisa ser salvo antes de finalizá-lo.[Ô] & Chr(13) & _
strMsg
End If

puVerificarTarefas = MsgBox(strMsg, vbQuestion + vbYesNo, [Ô]Finalização do Sistema[Ô])
End Function





[][ô]s,
Tunusat.
Faça seu login para responder