none
Abrir pasta excel oculta para consulta de dados RRS feed

  • Pergunta

  • Boa noite Pessoal,

    Estou com um VBA que ao clicar no botão de pesquisa, ele abre um outro arquivo excel, puxa os dados e fecha. Porém no momento que isto acontece, a tela da uma "piscada", ou seja, a nova janela abrindo e fechando rapidamente.

    Workbooks.Open Filename:=Range("C3").Value NOME = Application.WorksheetFunction.VLookup(txtID.Text, Range("$A:$B"), 2, 0) ActiveWorkbook.Close

    Como impedir que isto ocorra?

    Agradeço a todos!

    sábado, 1 de agosto de 2015 01:56

Respostas

  • Renan,

    caso esteja rodando uma versão anterior ao 2010, a única saída que vejo para contornar isso seria verificar quantas pastas de trabalho estão abertas antes de executar o comando e então aplicar o 'Quit' quando necessário.  O problema disso é que podem existir pastas de trabalho abertas sem estarem visíveis (como o caso da Personal.xlsb), daí vc teria que desconsiderá-las. O código abaixo exibe as pastas de trabalho que estão abertas na janela de verificação imediata (Ctrl+g):

    Dim Pastas As Workbook
    If Val(Application.Version) < 14 Then
        For Each Pastas In Workbooks
            Debug.Print Pastas.Name
        Next
    End If

    Abraço.

    Filipe Magno

    segunda-feira, 3 de agosto de 2015 15:10

Todas as Respostas

  • Boa noite Renan.

    Teste:

    Application.ScreenUpdating = False
    
    '...
    
    Application.ScreenUpdating = True

    Abraço.


    Filipe Magno

    sábado, 1 de agosto de 2015 03:56
  • Perfeito Filipe!!

    Deu certo aqui... já havia usado antes e não funcionou... mas agora está ok! rsrs

    Só uma outra dúvida, mas acredito que você deve saber...

    No momento de fechar a pasta de trabalho, já usei vários códigos e ele ou fecha a planilha e deixa a aplicação aberta, ou então ele fecha todas as pastas de trabalho abertas além da que possui o código...

    já tentei vários:

    'ActiveWorkbook.Close
    'Application.Quit
    'Windows("teste.xlsx").Close
    'ThisWorkbook.Close
    'ActiveWorkbook.Sheets("Plan1").Close


    Poderia me ajudar? desde já agradeço pela sua ajuda Filipe!
    • Editado renancapano sábado, 1 de agosto de 2015 12:56
    sábado, 1 de agosto de 2015 12:56
  • Renan,

    não entendi bem o que precisa. O comando 'Quit' encerra o Excel e com ele todos os documentos que estiverem abertos. O 'Close' fecha a pasta de trabalho solicitada, mantendo todos os demais abertos. A partir do Excel 2010, caso o arquivo seja o único aberto, o 'Close' também encerrará a aplicação.

    Poderia explicar melhor o que precisa?

    Abraço.


    Filipe Magno

    sábado, 1 de agosto de 2015 23:55
  • Obrigado pelo resposta!

    Sim, justo é este o problema.... estou usando justo o 

    ActiveWorkbook.Close

    e ele não age conforme vc explicou. Mesmo sendo a única planilha aberta, ele não encerra a aplicação do excel. Ele fica com a tela cinza e a planilha somente, é que fecha.

    segunda-feira, 3 de agosto de 2015 03:32
  • Renan,

    caso esteja rodando uma versão anterior ao 2010, a única saída que vejo para contornar isso seria verificar quantas pastas de trabalho estão abertas antes de executar o comando e então aplicar o 'Quit' quando necessário.  O problema disso é que podem existir pastas de trabalho abertas sem estarem visíveis (como o caso da Personal.xlsb), daí vc teria que desconsiderá-las. O código abaixo exibe as pastas de trabalho que estão abertas na janela de verificação imediata (Ctrl+g):

    Dim Pastas As Workbook
    If Val(Application.Version) < 14 Then
        For Each Pastas In Workbooks
            Debug.Print Pastas.Name
        Next
    End If

    Abraço.

    Filipe Magno

    segunda-feira, 3 de agosto de 2015 15:10