Usuário com melhor resposta
VBA com dois arquivos abertos.

Pergunta
-
Olá caros amigos, como vão todos? Espero que muito bem!!!
Hoje venho pedir uma explicação que eu deveria ter perguntado muito tempo atras e não perguntei.
Porque acontece erro quando eu estou com um arquivo do Excel aberto, um arquivo qualquer, e quando eu abro um arquivo que contem programação em VBA?
Ex: eu criei ("com muitas ajudas de todos vocês aqui do fórum") uma programação em VBA que quando a pessoa acessa o arquivo abre uma Userform que pede a senha do usuário que estão cadastrado em uma planilha desse aquivo. Se eu tenho um arquivo de Excel aberto e tento acessar o arquivo que tem a programação, quando eu digito a senha e clico no botão entrar, aparece a tela de erro, parece que a programação tenta procurar a senha no arquivo que já estava aberto.
Tem como acertar isso?
Muito obrigado meus amigos, fiquem com Deus!!!
Respostas
-
Olá grande Braz..
No início do seu código que dá o erro, ponha este comando...
Code SnippetWorkbooks("Controle das Atividades da Metrologia.xls").Activate
Assim fica claro que a planilha usuários pertence a pasta Controle das Atividades da Metrologia
O erro acontecia porque código tentava encontar a planilha usuários na pasta ativa, e como não encontrava dava o erro..
Até mais e fica na paz..
- Marcado como Resposta BrazCruzeiro segunda-feira, 2 de fevereiro de 2009 21:47
Todas as Respostas
-
-
Olá caro amigo Luiz Cláudio :
Normalmente eu uso o seguinte para referênciar uma célula em uma planilha : sheets("plan1").range("A2").value
Ex:
Criei uma userform para o usuário fazer login. A forma que eu dei os valores para cada variável está logo abaixo:
DIM SENHA,USUARIO,CONTA,MATRICULA
SENHA = Sheets("USUÁRIOS").Range("C1").Value
USUARIO = Sheets("USUÁRIOS").Range("A1").Value
CONTA = Sheets("USUÁRIOS").Range("D1").Value
MATRICULA = Sheets("USUÁRIOS").Range("B1").Value
Daí continuei o código normalmente, coloquei as condições IF para quando a senha digitada em uma textbox for igual a senha que está registrada na célula C1 o usuário terá o acesso.
Mas se eu estiver com uma planilha qualquer do Excel aberta e abrir a que tem o código de login, quando o usuário digita a senha e clica em OK dá um erro, porque parece que ele está querendo rodar o código na planilha que estava aberta, sendo que na planilha que já estava aberta não tem código nenhum, o código está na que eu abri depois.
Como posso resolver esse tipo de problema????
Muito obrigado Luiz. Abç -
-
Olá caro Luiz Cláudio :
Como eu disse, se abro o arquivo que tem as rotinas em VBA sem nenhuma outra planilha aberta, não dá erro algum. Aparece a Userform para o usuário digitar a senha normalmente. Mas se abro a planilha que contém as rotinas em VBA com uma outra planilha já aberta aparece o seguinte erro :
Erro de tempo de execução '9':
Subscrito fora do intervalo
Espero que com esses dados você possa me ajudar, pois estou tendo vários problemas por causa disso rapaz, você não faz idéia. As pessoas abrem vários arquivos de Excel e depois tentam abrir algumas que fiz e que tem macros e quando clicam em algum botão dá esse erro. Se fechar todos os outros arquivos e abrir somente o que contém a macro não dá erro nenhum.
Mais uma vez muito obrigado pela sua atenção. Fique com Deus!!!
-
-
No seu código você faz referencia ao arquivo que contém os dados dos usuários?
Workbooks("Nomedoseuarquivo.xls").Worksheets("Nomedasuasheets").Activate
Pois parece que a sua planilha busca as informações no outro arquivo, e como não encontra, dá erro.
[]'s
-
Olá caro amigo Figueredo, blz?
Vamos lá......
Tenho um arquivo de excel chamado "Controle das Atividades da Metrologia". Esse arquivo contém macros.
Esse controle serve para o usuário cadastrar suas tarefas diárias realizadas no laboratório de metrologia.
Quando o usuário entra na planilha uma Userform aparace para ele digitar sua senha. O banco de dados das senhas está dentro do mesmo arquivo mas em uma planilha oculta. Quando o usuário digita sua senha a sub procura a senha em uma planilha chamada SENHAS dentro do arquivo "Controle das Atividades da Metrologia", ou seja, não existe nessa planilha nenhuma macro vinculada com nenhum arquivo externo.
Quando o usuário entra nesse arquivo e digita sua senha, se não tiver nenhuma outra planilha de Excel aberta, a sub funciona normalmente, mas se o usuário tiver com uma outra planilha qualquer aberta e entrar no Controle das Atividades da Metrologia, digitar a senha e clicar em OK dá erro.
Espero ter sido mais claro e que vocês possam me ajudar, pois tá difícil aqui kkkkkkkkkkkkkkkkk
Grande abraço e obrigado pela atenção!! Fique com Deus!!!
-
Olá grande Braz..
No início do seu código que dá o erro, ponha este comando...
Code SnippetWorkbooks("Controle das Atividades da Metrologia.xls").Activate
Assim fica claro que a planilha usuários pertence a pasta Controle das Atividades da Metrologia
O erro acontecia porque código tentava encontar a planilha usuários na pasta ativa, e como não encontrava dava o erro..
Até mais e fica na paz..
- Marcado como Resposta BrazCruzeiro segunda-feira, 2 de fevereiro de 2009 21:47
-
-
AMIGO EU TAVA COM ESSE PROBLEMA ATE UNS MINUTOS ATRAS, ACHEI SUA DUVIDA NO GOOGLE AQUI E A RESPOSTA ESTAVA LOGO ABAIXO, UM CARINHA RESPONDEU AI RSRS BASTA POR ESSE CÓDIGO ANTES DA LINHA QUE APONTA O ERRO QUANDO VC DEPURA.
Workbooks("INVENTARIOS PALLETS SUZANO.xlsm").Activate
ABRAÇOS.