Notifications
Clear all

Impedir que uma macro no Workbook_Open() rode

4 Posts
2 Usuários
0 Reactions
1,027 Visualizações
(@ifret)
Posts: 3
New Member
Topic starter
 

Pessoal, como vão?

Pode parece meio estranho minha pergunta, mas gostaria de saber como poderia abrir uma planilha "Y" através de uma macro que estou rodando na planilha "X" (Usando o comando Workbooks.Open), sendo que a planilha "Y" tem uma macro que roda no momento que a planilha é aberta "Sub Workbook_Open()", sem que esta macro seja ativada?
Não posso retirar a macro do Open da planilha "Y", pois preciso que ela rode quando a planilha for aberta normalmente, mas preciso abrir esta planilha durante o processo de outra macro para pegar alguns dados e se a macro do Open dela for ativada neste momento a coleta de dados é inviabilizada...
Estou usando um sistema com a função "INDIRETO" e por algum motivo ela só funciona quando a planilha da base de dados está aberta, então rodo uma macro para apenas abrir, calcular e fechar a planilha da base de dados e assim consigo carregar as informações, só que se a macro do "Open" rodar, perco os dados...

Se alguém tiver alguma ideia de como poderia fazer isso, seria de grande ajuda!!

Muito obrigado pela atenção!

 
Postado : 04/09/2018 11:22 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ifret,

Boa tarde!

Você pode, então, buscar os dados sem abrir a planilha Y. Abaixo, segue um exemplo de código que pega dados em um arquivo fechado. Ele utiliza as API's do Windows.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/09/2018 11:50 am
(@ifret)
Posts: 3
New Member
Topic starter
 

Wagner, muito obrigado!
Achei este código muito bom, pena que preciso fazer alguma adaptações aqui na minha macro para usa-lo, o que pode me tomar um pouco de tempo!
Realmente vai resolver o meu problema, mas até que consiga concluir isso acabei achando uma outra forma de contornar esse problema.

Coloquei na macro da planilha "Y" o seguinte código na entrada:

    On Error Resume Next
    Workbooks("PlanX").Activate
    If Not Err.Number = 9 Then
        On Error GoTo 0
        GoTo LabelFim
    End If

Assim ele roda a macro, mas não impede o carregamento dos dados!

Mas o seu código vai me ajudar muito!
Realmente muito obrigado!

 
Postado : 04/09/2018 12:35 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ifret,

Ok. O importante é funcionar!

Peço, por gentileza, evitar fazer citações de inteiro teor das mensagens que lhe são encaminhadas. Não há necessidade. As citações, quando estritamente necessárias ao entendimento da mensagens que se quer enviar, devem restringir-se apenas a pequenos trechos.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/09/2018 1:23 pm