Notifications
Clear all

Excel invisível para um sistema

6 Posts
2 Usuários
0 Reactions
2,109 Visualizações
(@ceos005)
Posts: 49
Trusted Member
Topic starter
 

Olá

Tenho um sistema feito em Excel VBA onde utilizo application.visible=false no evento open, mas acontece que se eu abrir qualquer outra planilha do excel, ela ficará invisível também. Gostaria de saber se existe uma forma de deixar o excel invisível somente para o meu sistema podendo utilizar o excel e trabalhar em outros arquivos ao mesmo tempo.

 
Postado : 25/07/2012 3:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Faça o teste com...

Public Sub Teste()
    Dim myWb As Workbook, myWind As Variant
    
    Application.ScreenUpdating = False
    Set myWb = Workbooks.Open("O_Nome_Arquivo.xls")
    For Each myWind In myWb.Windows
        myWind.Visible = False
    Next
    Application.ScreenUpdating = True
End Sub

..Por favor caso resolva, marque seu tópico como resolvido, obrigado!!!

 
Postado : 26/07/2012 6:42 am
(@ceos005)
Posts: 49
Trusted Member
Topic starter
 

Boa tarde Alexandre

Não funcionou não. Não entendi muito bem, coloquei o código que você mandou em um módulo e o chamei no evento open.
Fiz certo?

 
Postado : 26/07/2012 11:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente...

Private Sub Worksheet_Activate()
Workbooks(O_Nome_Arquivo).Visible=False
End Sub
Sub Invis()
Workbooks(O_Nome_Arquivo).Visible=False
End Sub

...faça os tetes e depois dê retorno!!

Fique atendo ao nome e extensão do arquivo!
Att

 
Postado : 27/07/2012 5:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente também...

Option Explicit
Sub HideWorkBook(swb As String, bHide As Boolean)
    Windows(swb).Visible = bHide
    End Sub

Sub Desapareca()
        HideWorkBook ThisWorkbook.Name, False
        End Sub
     
Sub Apareca()
            HideWorkBook ThisWorkbook.Name, True
        End Sub
 
Postado : 28/07/2012 11:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Interessante vc querer deixar o Excel invisível qdo sua aplicação estiver rodando... tenho algumas sugestões antes de jogar códigos.
Seguinte, se o excel pode ser ocultado, imagino que seu programa esteja todo num formulário. Se torná-lo VBModal true, nada poderá ser mexido no excel abaixo, dando o mesmo efeito de se ele tivesse escondido. É uma idéia.
Outra sugestão é a seguinte, vc quer que o Excel apareça e suma de acordo com a pasta de trabalho ativa. Ou seja, vc pode colocar os códigos em dois locais:
1) Eventos Workbook_Activate e Workbook_Deactivate da sua pasta de trabalho, em Activate, vc oculto o excel, e em DeActivate, vc reexibe o Excel. Ainda acho arriscado ficar brincando com a visibilidade do Excel, pq se der algum pau no código, pronto, vai ter q fechar o Excel através do Gerenciador de Programas (aliás, tecla de atalho para o Gerenciador de Programas = Ctrl+Shift+Esc)

2) Criar um suplemento que fica ligado no Excel o tempo todo, aguardando o evento de abrir ou fechar qualquer arquivo, e este código identificará se o arquivo aberto é de fato seu programa (ou alguma versao dele). Sendo este suplemento o responsável por tornar o Excel visivel ou nao, dependendo do arquivo da vez. Eu penso que este é o melhor caminho. Vou desenvolver aqui e postar e ensinar como usa.

Té já.

 
Postado : 28/07/2012 2:18 pm