Notifications
Clear all

Verificar se existe senha no projeto vba.

9 Posts
4 Usuários
0 Reactions
1,551 Visualizações
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Galera, boa noite , alguem sabe me dizer como fazer para verificar se existe uma senha ou nao no projeto vba..

Aquela que "impossibilita" o acesso ao projeto vba.

Aguardo

 
Postado : 28/09/2015 3:51 pm
(@luizhcosta)
Posts: 0
New Member
 

Olá,

Sua dúvida, da forma que foi postada me pareceu bem simples a solução. Tecle ALT + F11, caso não haja uma senha, você poderá ver o código logo em seguida. Caso haja uma senha, o código vai estar "recolhido" no sinal de adição. Ao clicar no sinal, vai surgir uma tela para inserir a senha, ou não.

Boa sorte.

 
Postado : 28/09/2015 4:34 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Quero verificar isso por vba amigo.

 
Postado : 28/09/2015 4:38 pm
(@mikel-silveira-fraga)
Posts: 41
Trusted Member
 

MPrudencio, boa noite.

Não sou um expert no assunto, mas já li vários posts sobre isso e até onde vi, não existe possibilidade de realizar essa alteração com o próprio Excel/VBA.

Como você deve saber, existem programas que auxiliam nesse processo de quebra de senha. Isso é possível em outros softwares pois, os códigos utilizados realizam uma análise direto no código fonte de um determinado arquivo, mexendo na estrutura "lógica" dos comandos que formam o arquivo em si. Através dessa análise, ele consegue capturar o valor da senha e realizar a alteração/eliminação da mesma.

Uma possibilidade, mas também não conheço sobre o assunto, é utilizar um script escrito em VBScript para realizar essa ação. Já consegui fazer alterações sutis na questão de segurança do Excel e instalação de AddIns, utilizando VBScript, mas não sei dizer se é possível realizar uma validação da estrutura e eliminação da senha.

Caso encontre algo na internet, posto aqui para auxiliar você e os colegas que sempre buscam uma solução como esta.

Abraços e boa noite!!!

 
Postado : 28/09/2015 5:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se for somente para verificar se o projeto esta protegido, pode-se utilizar a rotina abaixo :

Sub Verifica_Se_VBA_Protegido()
'Precissa habilitar a Referencia "Visual Basic for Applications Extensibility Library"
'Tambem habilitar na segurança "Confiar no acesso ao modelo de objeto do projeto do VBA"
    
'Se projeto Protegido: = 1  - Desprotegido = 0
    MsgBox Application.VBE.ActiveVBProject.Protection

End Sub

No tópico abaixo tambem ja foi discutido sobre o assunto:
Alterar a senha do projeto vba
viewtopic.php?f=10&t=4405

Tambem temos :
protect VBA code from inside code
http://www.mrexcel.com/archive/VBA/12429.html

Change VBA Project Properties via VBA Code
http://www.mrexcel.com/archive/VBA/1100.html

[]s

 
Postado : 28/09/2015 7:01 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Mauro obrigado pela resposta mas a intenção é usar isso dentro de uma condição if, ou seja se tem senha executa isso se nao executa aquilo.

Coisa do tipo

if senha vba = true then

excecuta a

else

executa b

end if

 
Postado : 28/09/2015 8:31 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Consegui adaptar assim para realizar os testes agora resta saber se vai funcionar como espero

Ficou assim

Sub teste()

If Application.VBE.ActiveVBProject.Protection = vbext_pp_locked Then

MsgBox "Protegido", vbOKOnly, "Atenção"

Else

MsgBox "Não Protegido", vbOKOnly, "Atenção"

End If

End Sub

Habilitando a referencia no VBA ela fica nativa a planilha?????

Ou vou precisar ativar em cada maquina que pretender usar a planilha.?

 
Postado : 28/09/2015 8:55 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

De acordo com os testes que fiz o que pretendo so funciona se a caixa de seleção bloquear projeto para exibição for desabilidade, como fazer isso por VBA??

 
Postado : 29/09/2015 12:05 pm
(@mprudencio)
Posts: 0
New Member
Topic starter
 

Mas alguem para ajudar

 
Postado : 30/09/2015 7:25 pm