Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Abrir módulo com senha através do VBA

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Edson_Alex
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jun 05, 2019 11:44 am

Abrir módulo com senha através do VBA

Mensagem por Edson_Alex »

Sabe aquela que você coloca uma senha no módulo, pra toda vez que for abrir o editor de código ele pede uma senha? Então, eu tenho a senha, e queria abrir um módulo,porém, informando senha via vba.
Atenção: não é a senha da pasta de trabalho e sim a do editor de código VBA.
Alguém pode me ajudar?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Abrir módulo com senha através do VBA

Mensagem por webmaster »

Vou começar com o óbvio: A partir de outro projeto VBA, sim, mas não do próprio já que estaria protegido pelo próprio (?).

O código abaixo funcionou para mim. Cria um arquivo chamado "vba_protegida.xlsm" na sua Área de Trabalho (Desktop) com um projeto VBA protegido por senha (123) e use este código para abri-lo:

Código: Selecionar todos

Sub AbreArquivoXLSMEDestropege()
    Dim arquivo As Workbook
    Set arquivo = Workbooks.Open(Environ("USERPROFILE") & "\Desktop\vba_protegida.xlsm")
    
    Dim projetoVBA As VBProject
    Set projetoVBA = arquivo.VBProject
    
    'caso o projeto já esteja desbloqueado, pára por aqui
    If projetoVBA.Protection <> 1 Then Exit Sub
    
    'define o projeto ativo como o do arquivl aberto
    Set Application.VBE.ActiveVBProject = projetoVBA

    'a senha neste caso é 123
    Dim senha As String: senha = "123"
    SendKeys senha & "~~" 'digita a senha via sendkeus
    'confirma
    Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub
ATENÇÃO: é preciso adicionar referência ao Microsoft Visual Basic for Applications Extensibility 5.3 .

Fontes:
https://www.mrexcel.com/board/threads/h ... ode.49034/
https://groups.google.com/g/microsoft.p ... faOw?pli=1
https://www.engram9.info/excel-2002-vba ... bject.html


Edson_Alex
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Jun 05, 2019 11:44 am

Re: Abrir módulo com senha através do VBA

Mensagem por Edson_Alex »

Desculpe a demora em responder, porém o código para a execução, ao chegar na linha:
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute

Outra coisa, na verdade o que estou precisando é o seguinte:
  • Entrar em uma pasta de trabalho, através do access
  • abrir o editor e inserir a senha, pois o código é protegido por senha
  • no evento "Open" da thisworkbook, comentar cada linha existente
  • salvar e fechar o arquivo
Tudo isso, via VBA.
Tem como me ajudar?


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Abrir módulo com senha através do VBA

Mensagem por webmaster »

acho que precisa ativar a confiança em projetos VBA nas opções do Excel:
  1. Inicie o Microsoft Excel.
  2. Abra uma pasta de trabalho.
  3. Clique em Arquivo e, em seguida, em Opções.
  4. Na área de janela de navegação, selecione Trust Center.
  5. Clique em Configurações do Trust Center....
  6. Na área de janela de navegação, selecione Configurações da Macro.
  7. Assegure que Confiar acesso ao modelo de objeto do projeto VBA esteja marcado.
  8. Clique em OK.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder