Notifications
Clear all

Alterar a senha do projeto vba

10 Posts
3 Usuários
0 Reactions
4,258 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Alguem sabe se é possivel alterar a senha do projeto vba via codigo??
Imaginem uma funcao que em a determinada data ele altere a senha do projeto. É possivel??

 
Postado : 17/05/2012 4:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caio, eu ja vi de tudo em VBA e não arrisco a dizer que seja impossível, mas até onde eu sei, não é possivel este recurso devido as proprias questões de proteção, e em algumas pesquisas encontrei algumas rotinas que chegam a abrir a janela do VbProject, mas nada referente a alterar a senha, no link abaixo encontrei a seguinte questão :

How can I write a macro to change the password of my project?
http://spreadsheetpage.com/index.php/si ... ic_editor/
You can't. The protection elements of a VBA project are not exposed in the object model. Most likely, this was done to make it more difficult for password cracking software.

Tradução By Google
Como posso escrever uma macro para alterar a senha do meu projeto?
Você não pode. Os elementos de proteção de um projeto de VBA não estão expostos no modelo de objeto. Provavelmente, isso foi feito para torná-la mais difícil para quebra de senha software.

No link abaixo outra questão sobre o assunto, onde tem uma rotina que abre a janela VbProject:

Unprotecting VBA Project via VBA code to change code
http://www.ozgrid.com/forum/showthread.php?t=13006

Pesquisarei mais um pouco, se encontrar algo aviso.

[]s

 
Postado : 17/05/2012 6:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro
Acho difícil tbm que tenha uma rotina dessas até por causa de segurança e tals..
Achei um artigo que usa uma "gambiarra" tirar a senha, ve se é isso mesmo:

http://www.mrexcel.com/archive/VBA/1100.html

 
Postado : 18/05/2012 4:32 am
(@tomamais)
Posts: 26
Eminent Member
 

Caio,

Se intenção é proteger o código, já tentou ofuscadores?

http://www.ozgrid.com/excel-add-ins/encrypt-VBA.htm

Não são a bala de prata, mas já ajuda um bocado.

Abraços

 
Postado : 18/05/2012 9:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Na verdade seria alterar a senha. A idéia é se o projeto estar bloqueado e eu conseguir alterar a senha.

Vamos aguardar se alguém encontra uma solução..

de qualquer forma vlw.

 
Postado : 18/05/2012 1:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Neste caso o código vai precisar desvendar a senha atual colocada no projeto??

Já que vai está bloqueado, então seria de uma outra planilha para a planilha que deseja alterar a senha??

Att

 
Postado : 18/05/2012 6:06 pm
(@tomamais)
Posts: 26
Eminent Member
 

Caio,

A discussão no fórum do ozgrid no link que o Mauro passou é bem longa. Há uma macro lá que consegue no máximo desproteger a planilha, mas isso simulando o a digitação da senha na base do SendKeys. O contrário não. A conclusão é mesmo a não possibilidade, pelo menos por código VBA.

De qualquer forma, uma googlada me deu isso:

http://xlvba.3.forumer.com/index.php?showtopic=231

Não testei porque estou num PC sem Excel instalado (pode?). Veja se funciona. Mais uma vez, é na base do Sendkeys, mas quem sabe.

Abraços

 
Postado : 18/05/2012 8:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tentando contribuir...

Tenho uma macro que desprotege o projeto VBA através da simulação de teclas, funciona perfeitamente e já foi usada milhares de vezes.... mas, quando acrescentei o código para que ele trocasse a senha, ficou instável e só funciona as vezes.

    Const ANTES As String = "SENHA"
    Const DEPOIS As String = "SENHANOVA"    
    Application.ScreenUpdating = False    
    Application.Wait (25)
    SendKeys "%{F11}", True
    SendKeys "%(FP)", True
    SendKeys ANTES, True
    SendKeys "{ENTER}", True
    SendKeys "+{TAB}", True
    SendKeys "{RIGHT}", True
    SendKeys "{TAB}", True
    SendKeys "{TAB}", True
    SendKeys DEPOIS, True
    SendKeys "{TAB}", True
    SendKeys DEPOIS, True
    SendKeys "{ENTER}", True
    DoEvents
    Application.Wait (25)
    DoEvents
    SendKeys "%{F4}", True
    Application.ScreenUpdating = True
 
Postado : 19/05/2012 7:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Neste caso o código vai precisar desvendar a senha atual colocada no projeto??

Já que vai está bloqueado, então seria de uma outra planilha para a planilha que deseja alterar a senha??

Att

Não será necessário desvendar a senha atual do projeto, da seguir mais ou menos a lógica do nosso amigo alexandre_eng: SENHA_ATUAL e NOVA_SENHA.

@alexandre_eng
Vou tentar fazer alguns teste com esse seu código.

 
Postado : 21/05/2012 5:16 am
(@jlcharles)
Posts: 1
New Member