Boa noite, tenho uma planilha que tem uma macro inicial que pede senha para abrir o arquivo.
Dentro desse arquivo eu tenho varias planilha que vão sendo abertas de acordo com os botões que o usuário vai navegando, e isso só fica habilitado se ele ativar as macros ao abrir o arquivo. A arquivo só mostra uma planilha por vez (por exemplo: eu clico no botão plan2, ele oculta a plan1 e abre a pla2 e assim por diante)
Se ele abre o arquivo sem ativas as macros ele consegue ver a primeira planilha, mas a navegação não funciona e os arquivos estão protegidos, no entando ele pode pedir para reexibir as planilhas ocultas.
Gostaria de um codigo de macro para VBA no excel que eu pudesse inserir, assim que a macro que pede senha é acionada, comandos para desabilitar todas as formas que o usuário tem de habilitar as planilhas ocultas, sem no entando, impedi-la definitivamente de ser aberta, pois conforme relatei o usuario utiliza os botões nas planilhas para navegar de uma plan para outra.
Quero fazer isso para progeter melhor os meus arquivos, pois sei que existem varios códigos de macro que quebram a senha que colocamos nas planilhas, mas senhas que estão nas macros ja são bem mais difíceis de quebrar.
Sabem como é, quanto mais complicar para quem for querer quebras as proteçoes do arquivo melhor.
Grato,
- Home
- >
- Fórum
- >
- Windows, Softwa...
- >
- Suítes de escri...
- >
- Excel - Macro para impedi...
Se o cara entra na planilha com as macros desativadas, a macro que vc criar para impedir a reexibição nao vai estar desativada =/
Eu ja enchi o saco de muita gente aqui no forum pra conseguir algo do tipo, coloniz@dor, flashcooler, brunces e asolivei... acredito que a maneira mais simples e eficiente de se proteger a planilha é com senha de entrada e senha no codigo. Quer mais uma senha? zipa ela e poe senha! hahaha
eu tava animado em fazer projetinho, com user e senha, mas isso acaba dando mto trabalho, o codigo fica mto grande.
sai dessa vida mano
hahha
rssilva_22, já fizemos algo parecido aqui (lembra Peskz?). Dê uma lida nesse post inteiro para ver como foram as idéias:
https://www.hardware.com.br/comunidade/prote-macro/715887/2.html#post3024102
Depois, baixe o arquivo e abra os códigos VBA dele.
O macete para que ninguém entre na planilha é fazer com que ela cheque o usuário ativo ao ser ativada. Se o usuário ativo tem permissão para ver tal planilha, ela é exibida; se não, ela nem aparece. E se o cara tentar burlar a navegação, usando CTRL+PgUp ou CTRL+PgDown, mesmo assim a planilha não é exibida. O problema é quando o cara abre o arquivo sem habilitar as macros ou então o ato de salvar o arquivo. Esses foram os maiores problemas que Peskz e eu enfrentamos, mas até que ficou bastante funcional. Talvez você possa aproveitar alguma idéia.
O idela seria usar Access, caso a sua necessidade seja banco de dados.
Abraço,
Brunces
- Bruno Magalhães - Eu uso Linux (Meu blog, com dicas, sugestões e soluções de problemas relacionados ao Linux)
- Bruno Magalhães - O Blog
- Minimize o Windows Media Player para a bandeja (tray)
brunces disse: rssilva_22, já fizemos algo parecido aqui (lembra Peskz?). Dê uma lida nesse post inteiro para ver como foram as idéias:
https://www.hardware.com.br/comunidade/prote-macro/715887/2.html#post3024102
Depois, baixe o arquivo e abra os códigos VBA dele.
O macete para que ninguém entre na planilha é fazer com que ela cheque o usuário ativo ao ser ativada. Se o usuário ativo tem permissão para ver tal planilha, ela é exibida; se não, ela nem aparece. E se o cara tentar burlar a navegação, usando CTRL+PgUp ou CTRL+PgDown, mesmo assim a planilha não é exibida. O problema é quando o cara abre o arquivo sem habilitar as macros ou então o ato de salvar o arquivo. Esses foram os maiores problemas que Peskz e eu enfrentamos, mas até que ficou bastante funcional. Talvez você possa aproveitar alguma idéia.
O idela seria usar Access, caso a sua necessidade seja banco de dados.
Abraço,
Brunces
Claro que lembro, primeira mao que vc me deu aqui no forum, com um exemplo caprichado !! =)
Vou colocar o seguinte, os primeiros posts do topico eu era beeeemmm noob, acho que o problema se identifica mais com o atual apartir do Post#28 quando eu reabro o topico
Seguinte Peskz e brunces, vou tentar fazer o seguinte, e dai vocês me falam se vai ter como a pessoa burlar.
1. Botar uma macro q seja automaticamente iniciada assim que a planilha é aberta.
2. Proteger a planilha na maioria de suas funcões, o cara não vai conseguir clicar em nada, so navegar através dos botões de comando.
3. impedir que ele possa abrir as planilhas ocultas.
4. colocar uma senha para abrir as macros ou gravar as macros.
Eu conheço macros que peguei aqui no próprio forum que desprotege as planilhas, até ai tudo bem, só que tem que entrar na macro para inserir o código. Se a macro pedir senha acredito que o usuário não conseguira quebrar a senha de proteção da planilha.
Estou correto?
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
brunces disse: rssilva_22, já fizemos algo parecido aqui (lembra Peskz?). Dê uma lida nesse post inteiro para ver como foram as idéias:
https://www.hardware.com.br/comunidade/prote-macro/715887/2.html#post3024102
Depois, baixe o arquivo e abra os códigos VBA dele.
O macete para que ninguém entre na planilha é fazer com que ela cheque o usuário ativo ao ser ativada. Se o usuário ativo tem permissão para ver tal planilha, ela é exibida; se não, ela nem aparece. E se o cara tentar burlar a navegação, usando CTRL+PgUp ou CTRL+PgDown, mesmo assim a planilha não é exibida. O problema é quando o cara abre o arquivo sem habilitar as macros ou então o ato de salvar o arquivo. Esses foram os maiores problemas que Peskz e eu enfrentamos, mas até que ficou bastante funcional. Talvez você possa aproveitar alguma idéia.
O idela seria usar Access, caso a sua necessidade seja banco de dados.
Abraço,
Brunces
Brunces, gostei muito do modelo de planilha que vc usou com nivel de acesso, o mais interessante é que o usuário nãio consegue ve ra planilha se não digitar a senha, mal comecei a ler o tópico e ja vou aproveitar esse recurso que vc postou.
A planilha que eu tenho se a pessoa entrar com macro desativada ela consegue ver a planilha e não tem opções de nivel de permissão, assim quanto tenho que mudar algum coisa tenho que desproteger todo o trabalho e depois proteger novamente.
Legal aquele recurso.
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Acho que consegui fazer com que o usuário não exiba as planilhas ocultas se abrir a planilha com as macros desativadas, me corrigam se eu estiver errado.
A planilha esta com uma macro de abertura, assim que a plan é aberta e a macro ativada é solicitado uma senha para acesso, todo o conteudo esta protegido por senha, e a macro VBA esta com senha tbm. Com isso acho que será muito difícil alguem desproteger a planilha sem as devidas senhas.
Para evitar que o usuário exiba as planilhas ocultas quando abri o arquivo com as macros desativadas ela foi salva com a janela e estrutura protegida, esse modo só é dasativado com a senha ou quando o usuário abre a planilha com macro ativada.
Com isso ele não consegue exibir as planilhas bloqueadas e so ve uma pla em branco.
Da forma como esta existe a possibilidade de exibir as planilhas ocultas?
Outra coisa, se esse modo realmente funcionar preciso de ajuda com um comando no VBA.
Para fazer com que a macro desproteja a planilha do modo de janela e estrutura estou usando o comando:
ActiveWorkbook.Unprotect
Só que ele só funciona se eu não utilizar nenhuma senha para proteger as janelas e estrutura do documento, dai ja não vai ser uma proteção neh!
Como faço para digitar o comando e ele utilizar a senha 123, por exemplo, para desporteger o aquirvo?
Gostaria de saber que código de macro devo utilizar para que o Excel protega automaticamente as janelas e estruturas do arquivo quando o usuário fechar a planilha?
Pois ela é automaticamente desativada quando o usuario entra com a senha correta.
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Para evitar que o usuário exiba as planilhas ocultas quando abri o arquivo com as macros desativadas ela foi salva com a janela e estrutura protegida,
isto impede o acesso dos menus?
por exemplo, uma coisa que quebra, menu formatar>planilha>reexibir
Como faço para digitar o comando e ele utilizar a senha 123, por exemplo, para desporteger o aquirvo?
ActiveSheet.Protect "1234"
ActiveSheet.Unprotect "1234"
Peskz disse: isto impede o acesso dos menus?
por exemplo, uma coisa que quebra, menu formatar>planilha>reexibir
ActiveSheet.Protect "1234"
ActiveSheet.Unprotect "1234"
sim, isso quebra. eu testei.
Menu ferramentas / proteger / proteger pasta de trabalho
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Boa rapaz!
eu nao sabia disso nao, acho que vc esta no caminho certo.
=)
Pra mim, não tem como visualizar nao!
Vou implementar isto na minha quando tiver um tempo.
ActiveWorkbook.Protect "1234"
ActiveWorkbook.Unprotect "1234"
Peskz disse: Boa rapaz!
eu nao sabia disso nao, acho que vc esta no caminho certo.
=)
Pra mim, não tem como visualizar nao!
Vou implementar isto na minha quando tiver um tempo.
ActiveWorkbook.Protect "1234"
ActiveWorkbook.Unprotect "1234"
A desativação funcionou certinho...
Agora só não sei como fazer para que a proteção seja novamente ativada, de forma automática, quando o usuário fechar o arquivo. você sabe como eu faço isso?
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Para isso o brunces pensou o seguinte...
Por padrão a planilha ficará protegida, se o usuario sair sem salvar nada, a configuração da planilha continuará protegida, agora, se ele salvar alguma alteração é que é o problema.
por isto, foi inserido um codigo no evento "before_save" ou algo parecido...
onde vc colocará o codigo para proteger a planilha antes de ser salva.
_____________
editando ...
na verdade, acredito que na ultima planilha que ele anexou, ele fez de outra forma:
antes de sair da planilha, num evento do tipo "terminate", antes de fechar a planilha, ela dispara uma macro, que protege e salva.
o problema é que salvar automatico nao eh muito interessante ..
Peskz disse: Para isso o brunces pensou o seguinte...
Por padrão a planilha ficará protegida, se o usuario sair sem salvar nada, a configuração da planilha continuará protegida, agora, se ele salvar alguma alteração é que é o problema.
por isto, foi inserido um codigo no evento "before_save" ou algo parecido...
onde vc colocará o codigo para proteger a planilha antes de ser salva.
_____________
editando ...
na verdade, acredito que na ultima planilha que ele anexou, ele fez de outra forma:
antes de sair da planilha, num evento do tipo "terminate", antes de fechar a planilha, ela dispara uma macro, que protege e salva.
o problema é que salvar automatico nao eh muito interessante ..
Tentei usar um código parecido com a que uso quando o arquivo é aberto mas não funcionou.
Sub auto_close()
ActiveWorkbook.Protect "v&r1620*", "0", Structure:=True, Windows:=True
End Sub
Na hora da um erro:
"Erro de compilação no módulo oculto: Modulo 1" e a parte onde esta escrito "Sub atuo_close()" fica amarela, e é esse o problema, fazer com que a planilha proteja a estrutura novamente assim que o usuário fechar a planilha.
Praticamente só esta faltando isso para ela ficar redonda.
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Obrigado pela ajuda e suporte, acho que consegui o que queria.
Segue anexo a planilha caso queira dar uma olhada. (não repare na montagem dos códigos VBA, sou novato em matéria de VBA e saiu fazendo tudo da forma que acho correto )
a senha para abrir o arquivo é: cline123
a senha para abrir a macro no VBA é: CLINE123456
a senha para para proteção e desproteção (se solicitar pq acho que tirei quase todas com exceção da proteção de estrutura) é: v&r1620*
Anexos
Rodrigo Sousa
Acessem: http://www.webboxsite.com.br/Blog. http://www.comprarsite.blogspot.com.br/
Um minuto e um clique a mais na vida de vocês, mas uma visita e algo muito importante para mim...
Po Rodrigo, parabens pela planilha, layout bacana
Quanto a proteção, so nao entendi pq a planilha nao esta protegida, para evitar aquilo que ja comentamos: do nego entrar sem ativar as macros e mandar reexibir as planilhas ...
no mais, acho que ta beleza
novamente parabens !