PROTEGER / ESCONDER MACROS NO EXCEL
Pessoal,
Tenho o seguinte problema: Fiz uma aaplicação no Excel usando VBA. Não queria que os usuarios vissem minha aplicação. Já fiz a proteção do codigo com senha (assim eles não tem acesso ao codigo pelo F11). O problema é que no menu ferramentas / Macro vc consegue ver o nome de todas as macros.
Queria saber se existe uma maneira de esconder as macros nesse menu (não vale falar para colocar PRIVATE nas macros (SUB), pois são macros que funcionam em todo o sistema (Public SUB).
Queria saber tambem se tem uma maneira de proteger as macros, visto que é possivel quebrar a senha digitada no VBA.
Valeu a todos,
Abs,
Mem
Tenho o seguinte problema: Fiz uma aaplicação no Excel usando VBA. Não queria que os usuarios vissem minha aplicação. Já fiz a proteção do codigo com senha (assim eles não tem acesso ao codigo pelo F11). O problema é que no menu ferramentas / Macro vc consegue ver o nome de todas as macros.
Queria saber se existe uma maneira de esconder as macros nesse menu (não vale falar para colocar PRIVATE nas macros (SUB), pois são macros que funcionam em todo o sistema (Public SUB).
Queria saber tambem se tem uma maneira de proteger as macros, visto que é possivel quebrar a senha digitada no VBA.
Valeu a todos,
Abs,
Mem
Amigo costumo fazer compartilhamento do arquivo,sendo assim impossÃvel quebrar a senha com certos tipos de programas ou exemplos "ALGUNS".
Abraço.
Abraço.
Luis,
Valeu pela dica!!!!
Infelizmente na minha planilha não funcionou. Isso porque eu tenho algumas caixas de textos / Botões de comando que tenho que alterar. Para isso eu desprotejo a planilha, altero e protego de novo.
Com a senha no compartilhamento não consigo fazer isso. Ela apresenta um erro ao desproteger a planilha para alateração.
Valeu pela dica!!!!
Infelizmente na minha planilha não funcionou. Isso porque eu tenho algumas caixas de textos / Botões de comando que tenho que alterar. Para isso eu desprotejo a planilha, altero e protego de novo.
Com a senha no compartilhamento não consigo fazer isso. Ela apresenta um erro ao desproteger a planilha para alateração.
coloque o seguinte código na pasta de trabalho usando o evento active (pasta de trabalho)
Sub auto_open()
Dim barras As Variant
For Each barras In Application.CommandBars
barras.Enabled = True
Application.DisplayFullScreen = True ' FAZ A TELA FICAR GRANDE
ActiveWindow.DisplayHeadings = False ' RETIRA OS CABEÇALHOS DE LINHAS E COLUNAS
Application.DisplayFormulaBar = False ' RETIRA A BARRA DE FOMULAS
ActiveWindow.DisplayHorizontalScrollBar = False ' RETIRA A BARRA DE ROLAGEM HORIZONTAL
ActiveWindow.DisplayVerticalScrollBar = False ' RETIRA A BARRA DE ROLAGEM VERTICAL
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayStatusBar = False ' RETIRA A BARRA DE STATUS
Next
End Sub
' agora vá em ferramentas/propriedades de VBAproject/proteção/marque a caixa de verificação e insira a senha que quiser...
exemplo senha 1234
confirma senha 1234
'Aà toda vez que alguém der alt+ f11 vai aparecer o editor mas ele não vai consegir acessar seu projeto....
valeu....se não der certo dá um grito que nós podemos pensr em outra forma.
Sub auto_open()
Dim barras As Variant
For Each barras In Application.CommandBars
barras.Enabled = True
Application.DisplayFullScreen = True ' FAZ A TELA FICAR GRANDE
ActiveWindow.DisplayHeadings = False ' RETIRA OS CABEÇALHOS DE LINHAS E COLUNAS
Application.DisplayFormulaBar = False ' RETIRA A BARRA DE FOMULAS
ActiveWindow.DisplayHorizontalScrollBar = False ' RETIRA A BARRA DE ROLAGEM HORIZONTAL
ActiveWindow.DisplayVerticalScrollBar = False ' RETIRA A BARRA DE ROLAGEM VERTICAL
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayStatusBar = False ' RETIRA A BARRA DE STATUS
Next
End Sub
Sub Auto_Close()
Dim barras, nTela, Cont
On Error Resume Next
For Each barras In Application.CommandBars
barras.Enabled = True
Next
Application.DisplayFullScreen = False
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayStatusBar = True
ActiveWorkbook.Save
Application.Quit
End Sub
' agora vá em ferramentas/propriedades de VBAproject/proteção/marque a caixa de verificação e insira a senha que quiser...
exemplo senha 1234
confirma senha 1234
'Aà toda vez que alguém der alt+ f11 vai aparecer o editor mas ele não vai consegir acessar seu projeto....
valeu....se não der certo dá um grito que nós podemos pensr em outra forma.
vai aà um exemplo
Amigo tem vários formas de bloquear uma forma é pelo método Onkey segue um pequeno exemplo dó código para estudar e desenvolver:
Application.OnKey "{F2}", "" desabilita a tecla F2
Application.OnKey "{F2}" habilita a tecla F2
Abraço
Application.OnKey "{F2}", "" desabilita a tecla F2
Application.OnKey "{F2}" habilita a tecla F2
Abraço
Tenta mudar as Subs para Function, assim elas não aparecem na janela de macros (eu geralmente fazia assim e colocava senha no código).
Adonias,
Testei seu projeto, mas ele esconde os menus. Isso não impede de alguem (que conheça um pouco de excel) deixe eles visiveis.
Alem disso as macros que existe na minha planilha são facilmente visiveis pelo menu ferramentas / macros.
O bloqueio do codigo eu ja fiz, mas parece que é algo facil de desbloquear (segundo varias mensagens postadas aqui)
A ideia do Luis foi boa, mas no meu caso não funciona.
Se vc tiver alguma outra sugestão, poste aqui.
Testei seu projeto, mas ele esconde os menus. Isso não impede de alguem (que conheça um pouco de excel) deixe eles visiveis.
Alem disso as macros que existe na minha planilha são facilmente visiveis pelo menu ferramentas / macros.
O bloqueio do codigo eu ja fiz, mas parece que é algo facil de desbloquear (segundo varias mensagens postadas aqui)
A ideia do Luis foi boa, mas no meu caso não funciona.
Se vc tiver alguma outra sugestão, poste aqui.
Tenta mudar as Subs para Function, assim elas não aparecem na janela de macros (eu geralmente fazia assim e colocava senha no código).
Amigo faça como o amigo CIR_ROCK falou,faça assim
Para chamar a função para colocar salvar
Function Salvar()
ThisWorkbook.Save
End Function
Para chamar a função para colocar salvar
Amigos,
CIR Rock, vou fazer sua recomendação. Algumas rotinas pude colocar como PRIVATE SUB que não aparecem no menu ferramentas - macros. Somente 2 que não consegui fazer com que ficasse invisivel.
Luis Flavio, vou testar sua recomendação, mas se desabilito o F11 eu poderia depois acessar o editor de macro? Fiquei com essa duvida.
A outra pergunta é dessa maneira meu codigo estara protegido ou é fácil uma pessoa ter acesso ao codigo? Existe uma maneira confiavel de proteção?
Por enquanto, obrigado a todos pela ajuda
CIR Rock, vou fazer sua recomendação. Algumas rotinas pude colocar como PRIVATE SUB que não aparecem no menu ferramentas - macros. Somente 2 que não consegui fazer com que ficasse invisivel.
Luis Flavio, vou testar sua recomendação, mas se desabilito o F11 eu poderia depois acessar o editor de macro? Fiquei com essa duvida.
A outra pergunta é dessa maneira meu codigo estara protegido ou é fácil uma pessoa ter acesso ao codigo? Existe uma maneira confiavel de proteção?
Por enquanto, obrigado a todos pela ajuda
Tópico encerrado , respostas não são mais permitidas