Notifications
Clear all

Bloqueio da planilha por VBA

28 Posts
4 Usuários
0 Reactions
3,738 Visualizações
(@grlisboa)
Posts: 0
New Member
Topic starter
 

Boa noite pessoal,

Eu gostaria de saber se existe alguma forma de fazer um código que me ajude na segurança do meu trabalho. Por exemplo, gostaria de que as pessoas com que eu compartilho as minhas planilhas não pudessem repassar a terceiros. Utilizei uma vez um código pronto que achei na internet que pegava o número do HD da máquina da pessoa, ai então eu colocava esse número do HD na minha planilha e a pessoa só conseguia executar ela se fosse no mesmo computador. Esse código ajudava um pouco, só que quando era executado em excel versão 64bit acabava gerando erro.
Por acaso vocês conhecem algum código que me ajude nessa questão? Que garanta mais segurança ao meu trabalho? Não tem problema se o código ficar exposto, pois as pessoas que utilizam são mais leigas nesse sentido.

Agradeço desde já.

 
Postado : 23/09/2015 3:15 pm
(@messiasmbm)
Posts: 0
New Member
 

Você pode colocar que:
________________________________________________________________________________________
data1=data_de_hoje
desprotege a planilha seu_nome
planilha_visivel a planilha seu_nome

se planilha("seu_nome").celula("B1")=1 faça
verifica se txt com um nome especifico em C:ProgramData existe

se não existir faça
esconde planilha seu_nome
protege planilha seu_nome
salva o livro
fim se

se existir o arquivo faça
esconde planilha seu_nome
protege planilha seu_nome
abra o livro ou seu projeto
fim se

fim se

se planilha("seu_nome").celula("A1")=data_de_hoje e planilha("seu_nome").celula("B1")="" faça
crie um txt com um nome especifico em C:ProgramData
planilha("seu_nome").celula("B1")=1
fim se
_________________________________________________________________________________________________
Esses acima não são os códigos são só comentários...
primeiro ele desprotege a planilha e torna visível verifica se na B1é igual a nada se for ele vê se a data de hoje é igual a data que vc colocou na célula A1 se for ele cria o arquivo.
agora se B1 é igual a 1 ele verifica se tem o arquivo no caminho C:ProgramData se não for localizado esconde planilha seu_nome e protege planilha seu_nome para que os dados não sejam alterados.tudo isso no vba do livro no:

Private Sub Workbook_Open()

End Sub

Espero ter ajudado!

 
Postado : 23/09/2015 4:22 pm
(@messiasmbm)
Posts: 0
New Member
 

Agora se ele achar o arquivo abra seu projeto.

 
Postado : 23/09/2015 4:29 pm
(@messiasmbm)
Posts: 0
New Member
 

Depois de tudo isso coloca senha no vba para fechar com chave de ouro.

 
Postado : 23/09/2015 4:32 pm
(@grlisboa)
Posts: 0
New Member
Topic starter
 

messiasmbm,

Eu não conheço muito de vba, fiquei um pouco perdido com o que você me pediu. Você se importaria de descrever um pouco melhor o que eu preciso fazer?

 
Postado : 23/09/2015 4:46 pm
(@mprudencio)
Posts: 0
New Member
 

Messias senha no vba é igual a trancar a porta e colocar a chave em baixo do tapete, e tao facil quebrar esse tipo de senha que nem perco meu tempo colocando.

Excel no quesito segurança chega a ser hilário de tão ruim.

A unica senha que oferece um minimo de segurança e a senha de abertura do arquivo que neste caso de nada adianta.

A MS infelizmente peca neste ponto.

 
Postado : 23/09/2015 4:51 pm
(@grlisboa)
Posts: 0
New Member
Topic starter
 

MPrudencio,

Quanto ao código VBA eu não me preocupo tanto, pois as pessoas que irão utilizar a minha planilha são mais leigas quanto a isso. Minha preocupação mesmo era que essa planilha não fosse repassada para qualquer um, por isso gostaria de uma forma de limitar o acesso a ela.

 
Postado : 23/09/2015 4:57 pm
(@messiasmbm)
Posts: 0
New Member
 

No lugar de colocar a data em uma célula é só declarar como uma variável resolveria este problema do tapete ...

 
Postado : 23/09/2015 5:00 pm
(@messiasmbm)
Posts: 0
New Member
 

Me manda sua planilha e qual sua versão do excel?

 
Postado : 23/09/2015 5:02 pm
(@grlisboa)
Posts: 0
New Member
Topic starter
 

messiasmbm,

Estou sem acesso a minha planilha agora, ela está no meu pc do trabalho. Você pode fazer em uma planilha qualquer que depois consigo adaptar. Só precisaria do código montado mesmo para eu me localizar.
Se puder me ajudar com isso, agradeço muito.

Utilizo a versão 2007, mas precisaria que funcionasse em todas as versões acima da 2007, inclusive no sistema 32 e 64bit.

 
Postado : 23/09/2015 5:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se a rotina que você utilizava que pegava o número do HD funcionava e te servia, porque não adaptar para rodar na versão 64 bits, ou até podemos incrementar para ao ser executada, verificar a versão e executar a instrução referente a versão.

[]s

 
Postado : 23/09/2015 5:11 pm
(@messiasmbm)
Posts: 0
New Member
 

Meu é 2010 acho que vai dar conflito...
Tem que ser alguém que tenha 2007.

 
Postado : 23/09/2015 5:19 pm
(@grlisboa)
Posts: 0
New Member
Topic starter
 

Mauro Coutinho,

Também poderia ser. Estou anexando as duas planilhas para você verificar.
A planilha "Pegar código do hd" pega o código e salva na célula ZZ1. Feito isso é necessário abrir a planilha "Teste" e colocar o código lá no vba.
Se você conseguir adaptar esse código para que funcione tanto no 32 como no 64, agradeço.

 
Postado : 23/09/2015 5:27 pm
(@messiasmbm)
Posts: 0
New Member
(@messiasmbm)
Posts: 0
New Member
Página 1 / 2