none
VBA com dois arquivos abertos. RRS feed

  • 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!!!
    segunda-feira, 24 de novembro de 2008 23:47

Respostas

  • Olá grande Braz..

     

    No início do seu código que dá o erro, ponha este comando...

     

    Code Snippet

    Workbooks("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
    segunda-feira, 19 de janeiro de 2009 16:52

Todas as Respostas

  • Isto depende de como está a sua programação. Se você usa muito ActiveCell, ActiveSheet, etc., fica sujeito a resultados inesperados, pois não sabe quem estará ativo quando o código for disparado.

     

    sábado, 13 de dezembro de 2008 02:56
    Moderador
  • 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ç
    sábado, 13 de dezembro de 2008 14:38
  • Qual mensagem de erro ele mostra?
    domingo, 21 de dezembro de 2008 13:27
    Moderador
  • 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!!!

    segunda-feira, 22 de dezembro de 2008 14:53
  • Como vão grandes amigos do Fórum?

     

    Será que alguém poderia me dar uma dica de como resolver esse problema? Como usar um arquivo xls com VBA quando tenho uma outra planilha aberta?

     

    Muito obrigado!!!

    terça-feira, 13 de janeiro de 2009 14:32
  • 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
     
     
    sexta-feira, 16 de janeiro de 2009 00:35
  • 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!!!

    sexta-feira, 16 de janeiro de 2009 09:22
  • Olá grande Braz..

     

    No início do seu código que dá o erro, ponha este comando...

     

    Code Snippet

    Workbooks("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
    segunda-feira, 19 de janeiro de 2009 16:52
  • MANO EU TAVA QUEBRANDO A CABECA A DIAS COM ISSO, VC ME SALVOU, OBRIGADO O CODIGO Workbooks("NOME DA PLANILHA.xlsm").Activate RESOLVEU MEU B.O VLW.
    quinta-feira, 8 de novembro de 2018 21:08
  • 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.

    quinta-feira, 8 de novembro de 2018 21:09