abrir outra pasta de trabalho ou seleciona-la  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

abrir outra pasta de trabalho ou seleciona-la

Mensagempor AlanBC » Qui Jul 04, 2019 5:44 pm

ola... boa noite.

preciso de uma macro pra abrir uma outra pasta de trabalho... assim,

estou com a pasta de trabalho "A" aberta e quero abrir a pasta de trabalho "B". mas se esta outra pasta de trabalho "B" já estiver aberta, somente vai selecionar a plan1 da pasta "B".
consegui fazer abrir a pasta "B" com Workbooks.Open "C:\...Cópia.xlsm"
mas retornar pra "B" depois de aberta nao consegui.

no aguardo.
obrigado.
AlanBC
Membro
Membro
 
Mensagens: 25
Registrado em: Qua Mar 05, 2014 1:58 pm
Has thanked: 11 times
Have thanks: 2 times

{ SO_SELECT }

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor wagner » Qui Jul 04, 2019 7:14 pm

AlanBC,

Boa noite!

Já tentou:

Código: Selecionar todos
Workbooks(“Cópia.xlsm”).Activate
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5501
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor AlanBC » Qui Jul 04, 2019 7:54 pm

opa...
obrigado pela atenção wagner!
ja tentei tmb... mas retorna a mensagem do windows: "Cópia.xlsm já esta aberto. Reabri-lo fará com ... descartadas. Deseja reabrir Cópia.xlsm?"
preciso de que, quando pasta "B" ja estiver aberta, alterne selecionando e ativando.
obrigado.
AlanBC
Membro
Membro
 
Mensagens: 25
Registrado em: Qua Mar 05, 2014 1:58 pm
Has thanked: 11 times
Have thanks: 2 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor wagner » Sex Jul 05, 2019 2:05 pm

AlanBC,

Então faça o upload so seu arquivo para o sendspace, google drive, ertc e cole o link aqui. Aproveite e diga como chegar ao problema também.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5501
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor AlanBC » Sex Jul 05, 2019 5:37 pm

ola wagner... boa noite.

acho que nao me expressei muito bem.
nao tenho um problema pra resolver com esta macro... na vdd nem tenho a macro e nao sei como fazer. mas seria de grande utilidade pra mim.

preciso de uma macro para abrir e/ou ativar outra pastadetrabalho.
pastadetrabalho "planilha_A" aberta, entao, clico na macro pra "chamar" a outra pastadetrabalho "planilha_B": se a "B" estiver fechada vai abri-la, mas se ja estiver aberta, vai selecionar(ativar) na tela.

macro que vai alternar entre abrir ou selecionar(ativar) uma pastadetrabalho especifica.

lembrando que essa macro tem q funcionar somente entre esses pastas de trabalho, "planilha_A" e "planilha_B", pra evitar um "salvar como" e ao clicar abrir o arquivo original.

vlw. abraços.
AlanBC
Membro
Membro
 
Mensagens: 25
Registrado em: Qua Mar 05, 2014 1:58 pm
Has thanked: 11 times
Have thanks: 2 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor srobles » Seg Jul 08, 2019 10:01 pm

Alan,

Veja se o modelo do link abaixo, atende sua necessidade.

Link : https://www.sendspace.com/file/l9l5p6

Espero ter ajudado.

Abs
Espero ter ajudado.

Abs.

Saulo Robles

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond

For this post the author srobles thanked:
AlanBC (Ter Jul 09, 2019 1:49 pm)
srobles
Membro
Membro
 
Mensagens: 313
Registrado em: Sáb Mai 09, 2015 10:35 pm
Has thanked: 99 times
Have thanks: 126 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor AlanBC » Ter Jul 09, 2019 1:54 pm

saulo robles...
amigo muito obrigado por responder...vlw msm!

é isso que estou precisando, mas com uma condição para implementar no codigo "carregar arquivo com caminho fixo"...

como referencia e exemplo os arquivos "pasta1" e "pasta2":
o arquivo "pasta2" somente podera ser aberto/ativado pelo arquivo de nome "pasta1"; ou seja qualquer outro arquivo com nome diferente de "pasta1" não podera abrir "pasta2", caso alguem renomeie o "pasta1" ou algo como "salvar como" nao poderá abrir/ativar "pasta2".

essa é a condicao que preciso no codigo.
pode ajudar nisso tambem?

aguardo...
obrigado. abraços
AlanBC
Membro
Membro
 
Mensagens: 25
Registrado em: Qua Mar 05, 2014 1:58 pm
Has thanked: 11 times
Have thanks: 2 times

Re: abrir outra pasta de trabalho ou seleciona-la  [Resolvido]

Mensagempor srobles » Ter Jul 09, 2019 11:55 pm

Alan,

Eita condição "braba" essa, meu amigo! :lol: :lol: :lol:

Confesso que penei e muito para achar uma maneira de fazer isso de fato funcionar, e espero que os modelos do link atendam sua necessidade.

Note que a pasta que servirá de chamador (Pasta1.xlsm) para a pasta que deverá ser aberta (plan_Para_Abrir.xlsm) possui no evento WorkBook.Open, uma chamada para a rotina criarToken, que em suma, adiciona uma propriedade customizada, cujo valor concatenado é o nome do usuário & "_" & data em formato DD.MM.YYYY.

Essa propriedade será verificada assim que a plan_Para_Abrir.xlsm abrir. Caso o "Token" possua o mesmo valor ela abre e exibe as demais guia da pasta e será exibida a mensagem de acesso permitido. Caso contrário, será exibida a mensagem de acesso negado e ela será fechada.

Para estudar a validação deste "token", será necessário desabilitar as macros, abrir a plan_Para_Abrir.xlsm, e fornecer a senha 1234 para desbloquear o projeto (recomendo que proteja a pasta que será aberta via código e se possível, na que abrirá ela também).

Em meus testes aqui, criei outra pasta com o nome Pasta1.xlsm e tentei abrir a outra e não consegui. Nem tentando abrir a plan_Para_Abrir.xlsm direto.

EDIT:
Modelo com validação por token:
Link : https://www.sendspace.com/file/6acoac

Modelo sem validação por token:
Link : https://www.sendspace.com/file/a8px2g

Espero ter ajudado.

Abs
Espero ter ajudado.

Abs.

Saulo Robles

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond

For this post the author srobles thanked:
AlanBC (Qua Jul 10, 2019 4:43 pm)
srobles
Membro
Membro
 
Mensagens: 313
Registrado em: Sáb Mai 09, 2015 10:35 pm
Has thanked: 99 times
Have thanks: 126 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor AlanBC » Qua Jul 10, 2019 4:43 pm

boa tarde.
obrigado pela ajuda saulo!

é um pouco complexo esse codigo msm. funcionou aqui. mas a pasta "plan_Para_Abrir" so abre chamada pela macro mesmo!

tinha pensado em algo mais simples... tomando como base seu primeiro modelo (Pasta1 e Pasta2)... achei q poderia incluir uma condicao( if ou algo ) com o diretorio e nome do arquivo ("c:\....\Pasta1.xlsm") na macro "Pasta1", pra checar se esse diretorio coincide com da pasta ativa: e se NAO for verdadeiro (não coincidir) encerra com "msgbox" "acesso nao permitido!"; mas se for verdadeiro (coincidir), abre o arquivo e/ou ativa a Pasta2 pela macro.

assim, se o arquivo (Pasta1) for renomeado ou usarem o "salvar como" ou tiver um backup com outro nome, a Pasta2 nao vai ser aberta por este novo arquivo.

achei que daria certo desta forma, mais simples. é póssivel desta forma?

muito obrigado pela atencao.
forte abraço

For this post the author AlanBC thanked:
srobles (Qua Jul 10, 2019 5:27 pm)
AlanBC
Membro
Membro
 
Mensagens: 25
Registrado em: Qua Mar 05, 2014 1:58 pm
Has thanked: 11 times
Have thanks: 2 times

Re: abrir outra pasta de trabalho ou seleciona-la

Mensagempor srobles » Qua Jul 10, 2019 5:26 pm

Alan,

Confesso que parti da mesma abordagem que a sua, ser algo mais simples. Porém, pensei em tantas formas de "burlar" essa proteção e, em todas, consegui quebrar essa verificação, com exceção claro, de ter dois arquivos com o mesmo nome na pasta e com a mesma extensão (.xlsm). Note que se outro usuario criar uma pasta em branco, adicionar uma rotina (macro) qualquer para abrir essa plan_Para_Abrir.xlsm, não será possível, pois esta nova pasta não tem o "token", que é gerado ao abrir a Pasta1.xlsm e excluído ao fechar.

Esta forma (mais complexa), além de ser mais interessante (já que nunca tive uma demanda dessas), achei mais segura, justamente devido a complexidade.

Todavia, é perfeitamente possível fazer de maneira mais simples, mas consequentemente, menos segura. Estude a proposta, baseado no que disse no primeiro parágrafo, e coloque em pauta uma situação idêntica, só que de forma mais simples. Verá que outro usuário, cedo ou tarde, conseguirá acesso á outra pasta.

Lembro até hoje de uma frase que um colega de serviço me disse quando comecei a trabalhar com suporte técnico : Não confie em usuários, basta que eles tenham um tempinho vago, que logo tentam burlar tudo o que você sangrou para bloquear. :lol:

Enfim, desculpe a bíblia.

Estarei elaborando um modelo mais simples e postando o link para download.

EDIT:

Baixe o novo modelo em meu post anterior!.

Espero ter ajudado.

Abs
Espero ter ajudado.

Abs.

Saulo Robles

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond

For this post the author srobles thanked:
AlanBC (Qua Jul 10, 2019 6:24 pm)
srobles
Membro
Membro
 
Mensagens: 313
Registrado em: Sáb Mai 09, 2015 10:35 pm
Has thanked: 99 times
Have thanks: 126 times

Próximo

Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: rlm e 7 visitantes