Página 1 de 1
Abrir arquivo somente com a macro habilitado
Enviado: 17 Nov 2015 às 17:00
por Albino10
Senhores,
Tenho um arquivo com macro inicial que pede: nome de usuário e senha para abrir o arquivo e com opção de cadastrar novos usuários nessa mesma tela inicial.
Contudo, se o excel estiver com a macro desabilitada, o arquivo abre normalmente dando acesso a qualquer um de visualizar as planilhas.
Gostaria de aprender como impedir que esse arquivo seja aberto mesmo que a macro esteja desabilitada.
Desde de já antecipo os meus agradecimentos
Um abraço grande
Re: Abrir arquivo somente com a macro habilitado
Enviado: 17 Nov 2015 às 17:55
por Parkeless
Você pode fazer com que o Excel oculte todas as abas antes de fechar, e reexiba antes de abrir...
Eu fiz da seguinte forma:
Criei uma planilha chamada "Área de Segurança", em que nela havia uma imagem com o dizer, "Para a utilização dessa planilha, as macros precisam estar habilitadas!"
E fiz um código beforeclose, tipo,
---
Workbook_BeforeClose(Cancel As Boolean)
Dim planilha as worksheet
For each planilha in worksheets
If planilha.name <> "Área de Segurança" then: planilha.visible=xlveryhidden
Next planilha
End sub
-----
O contrário ao abrir:
----
Private Sub Workbook_Open()
For each planilha in worksheets
If planilha.name <> "Área de Segurança" then: planilha.visible=xlSheetVisible
Next planilha
End sub
---
Assim se a pessoa abrir sem macro, não vai ter acesso, porque é a própria macro que habilita tudo...
Isso te atende?
Re: Abrir arquivo somente com a macro habilitado
Enviado: 18 Nov 2015 às 12:34
por Albino10
Obrigado Parkeless pelo seu retorno,
Vou aplicar os comandos que você me orientou e te confirmo, OK? só peço um tempinho, por favor, porque sou meio lento nisso, estou aprendendo macro em vídeos aulas na internet e montei este programa, achei sua idéia muito boa, acho que vai atender totalmente o meu interesse, já já fecho esse fórum de acordo com as normas.
Um abraço grande
Re: Abrir arquivo somente com a macro habilitado
Enviado: 18 Nov 2015 às 13:22
por Parkeless
Tranquilo cara, faz no seu tempo.
Se você está aprendendo, talvez não sabia disso, então estou adiantando:
Essas macros, OnOpen/BeforeClose, não podem ser colocadas em um módulo, igual as outras macros.
No editor do VBA, no canto superior esquerdo estão os seus projetos (planilhas abertas e etc). No seu projeto, clique duas vezes em "EstaPasta_de_trabalho".
Irá abrir uma área de texto. É ali que você deve colocar.
Assim ela ficará não em um módulo, mas na própria pasta da trabalho, e será executada automaticamente de acordo com o que o nome da sub sugere (ao abrir a pasta de trabalho , antes de fechar, etc)
Re: Abrir arquivo somente com a macro habilitado
Enviado: 18 Nov 2015 às 14:58
por Albino10
Funcionou, mas apresentou dois detalhes:
O PRIMEIRO:
Na tela inicial que pede "Nome de Usuário" e "Senha", além de ter a opção "Cadastrar Novo Usuário" também tem a opção "Sair" para o caso do usuário desistir de abrir o projeto, certo?
Só que para "Sair" preciso clicar nele 9 vezes que é o nº correspondente as planilhas do projeto.
Vou continuar analisando e fazendo testes enquanto aguardo você, OK?
Re: Abrir arquivo somente com a macro habilitado
Enviado: 18 Nov 2015 às 16:29
por Albino10
O SEGUNDO:
Quando entro com "Usuário e Senha" aparece a mensagem: "Erro em tempo de execução '1004': O método Select da classe Worksheet falhou. ( que é a planilha que será buscada para o usuário trabalhar)
Abrir arquivo somente com a macro habilitado
Enviado: 19 Nov 2015 às 10:08
por Parkeless
Hm...
Você consegue disponibilizar o arquivo?
Abrir arquivo somente com a macro habilitado
Enviado: 19 Nov 2015 às 12:24
por Albino10
Consegui Parkeless, valeu mesmo, seus comandos estavam certíssimos, eu é que estava incluindo o comando de abrir o arquivo sempre na tela de: "usuário e senha", errado, mas de tando exercitar (ontem e hoje) consegui, levei uma surra mas eu tenho que aprender, eu gosto demais de excel.
Muuuito obrigado pela sua ajuda e presteza.
Re: Abrir arquivo somente com a macro habilitado
Enviado: 19 Nov 2015 às 12:33
por Parkeless
Isso