Notifications
Clear all

Planilha entra em ERRO quando outra planilhas estão abertas

11 Posts
4 Usuários
0 Reactions
2,220 Visualizações
(@pfarias)
Posts: 0
New Member
Topic starter
 

Oi pessoal.

Sou ainda iniciante com o VBA e estou desenvolvendo uma rotina que já esta trabalhando normalmente. Só que descobrir um erro que esta atrapalhando.

Quando eu abro a planilha coloquei o seguinte código para poder retirar as faixas de opções, selecionar a planilha HOME e abrir automaticamente o formulário inicial.

Private Sub Workbook_Open()
Sheets("home").Select
Call sbx_retirar_faixa_opcoes
home.Show
End Sub

Até ai tudo bem. Ela funciona normal DESDE que seja a primeira planilha a abrir.

Se por a caso já exista outras planilhas em abertos, seja qual for, aparece o seguinte erro:

Erro 429: o componente activeX não consegue criar o objeto

E ao Depurar o código aparece em destaque o home.show

Então precisaria apenas parar a execução e iniciar novamente e funciona normalmente.

Então como posso concertar isso para que possa abrir normalmente mesmo que tenha outras planilhas em aberto?
Escrevi algo errado no código?

 
Postado : 16/05/2014 4:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!
:?
O nome home está correto no objeto?

Verifique se as referencias em sua bibliotecas estão ok, ou marcas como ausente.

Att

 
Postado : 16/05/2014 5:15 pm
(@pfarias)
Posts: 0
New Member
Topic starter
 

Esta certo sim.

Ela até que funciona normalmente, como disse na pergunta, mas apenas se ela for a primeira planilha a ser aberta, se já existir outra planilha aberta ela volta com esse erro.

 
Postado : 16/05/2014 5:26 pm
(@themrl16)
Posts: 60
Trusted Member
 

Boa noite pfarias!

Vc já tentou referenciar a planilha que possui o objeto que deseja exibir, ou exibir o formulário sem restrição? Pode ser que o Excel esteja se "perdendo" entre os arquivos devido a execução de alguma linha... Exemplo:

Private Sub Workbook_Open()
Sheets("home").Select
Call sbx_retirar_faixa_opcoes
Workbooks("Minha Plan").Activate 'Minha Plan = Nome do arquivo, sem a extensão do arquivo
home.Show vbModeless 'vbModeless = Sem restrição de janela (Permite trabalhar com mais de um form ao mesmo tempo)
End Sub

Caso não dê certo, por favor disponibilize a Sub sbx_retirar_faixa_opcoes para avaliarmos o que ela está fazendo... ou ainda, se puder realizar o upload do arquivo / anexá-lo no fórum, seria ainda mais fácil.

Abraços e bom fim de semana.

 
Postado : 16/05/2014 5:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Já tentou referenciar o livro?

Workbooks("MeuArquivo.xls").Worksheets("MinhaGuia").Activate
 
Postado : 16/05/2014 5:36 pm
(@pfarias)
Posts: 0
New Member
Topic starter
 

Themrl16 e Alexandrevba,

Tentei fazer como falaram, mas não adiantou.

Themrl16, aqui esta o código do Sub sbx_retirar_faixa_opcoes

Sub sbx_retirar_faixa_opcoes()
ThisWorkbook.Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
[d11].Value = "Faixa de Opções (Menus)  - R-E-T-I-R-A-D-A-"
End Sub
 
Postado : 16/05/2014 6:02 pm
(@pfarias)
Posts: 0
New Member
Topic starter
 

Opa, eu conseguir.

Falei anteriormente que não tinha conseguido, mas tinha digitado errado.

Conseguir apenas referenciado como AlexandreVBA falou.

Obrigado.

 
Postado : 16/05/2014 6:17 pm
(@lorenzon)
Posts: 355
Honorable Member
 

Boa noite!!

Já tentou referenciar o livro?

Workbooks("MeuArquivo.xls").Worksheets("MinhaGuia").Activate

Alexandre,

Isso da certo sim, mas é comum trocarmos o nome do arquivo e, consequentemente, este código acarretará em erro. ok?

Existe um jeito de inserirmos um código no work_book que renomeai automaticamente o arquivo?

 
Postado : 16/05/2014 7:00 pm
(@pfarias)
Posts: 0
New Member
Topic starter
 

Boa noite!!

Já tentou referenciar o livro?

Workbooks("MeuArquivo.xls").Worksheets("MinhaGuia").Activate

Alexandre,

Isso da certo sim, mas é comum trocarmos o nome do arquivo e, consequentemente, este código acarretará em erro. ok?

Existe um jeito de inserirmos um código no work_book que renomeai automaticamente o arquivo?

Não tinha pensado nisso.

E muito provavelmente acontecerá isso, caso eu esqueça de trocar o nome no Editor.

 
Postado : 16/05/2014 8:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Armazena o nome atual do arquivo em uma célula, depois passe via variável.

Att

 
Postado : 17/05/2014 6:46 am
(@pfarias)
Posts: 0
New Member
Topic starter
 

Bom dia!!

Armazena o nome atual do arquivo em uma célula, depois passe via variável.

Att

Desse jeito ficou bem melho!

Valeu

 
Postado : 17/05/2014 7:37 am