Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
  • Avatar do usuário
Por Helder
Posts
#5595
Bom dia meus amigos, estou tentando proteger minha planilha contra macros externas desabilitando o botão de macros da Guia Exibição. Já tentei "proteger pasta de trabalho" e "proteger planilha", mas a mesma continua habilitada e funcionando.
Já encontrei planilhas protegidas nesse nível mas só agora tenho essa necessidade.

Obrigado.
Avatar do usuário
Por laennder
Avatar
#5596
É possível desabilitar para que as macros não seja executadas, mas essa é uma configuração local.

Clique no menu Arquivo e depois escolha Opções.

Clique em Central de Confiabilidade (1), depois Configurações da Central de Confiabilidade (2), Configurações de Macro (3), e depois marque a opção para desabilitar as macros.

Imagem

Imagem
Por Helder
Posts
#5630
Bom dia Laennder, o que estou procurando é uma forma de desabilitar o botão do gravador de macros. Faço algumas planilhas de controle em VBA e como você mesmo diz, pesquiso muitas planilhas prontas, para aprendere aproveito muitos códigos, principalmente os de loop. Minha última descoberta foi habilitar uma planilha pelo número do HD, impedindo que um arquivo seja aberto em outra máquina, mas isso é outro assunto.

O que estou pesquisando é uma forma de impedir a quebra da planilha por uma macro externa. Vou tentar achar a planilha com essa configuração novamente e enviar.

Obrigado.
Avatar do usuário
Por Parkeless
Posts Avatar
#5632
E aí Helder!

Acho que isso aqui resolve:


VBE > Project Explorer> Lado direito do mouse na planilha > Propriedades > Proteção
Preencher conforme abaixo:
Imagem

Depois, salve, feche a planilha, abra-a, e tente gravar uma macro. Se fez certo, deve aparecer uma mensagem de inserção de senha:

Imagem

Era isso mesmo?

Obs.: Como travar a planilha por HD? Essa não sei :D :D
Por Helder
Posts
#5641
Boa tarde Parkeless
A respeito do número do HD, este é o código que utilizo para obter o número do computador de meus clientes.

Sub teste() 'Essa macro é aplicada ao botão da planilha que chama a função que faz a análise.
NumSérie (Drive)
End Sub

Function NumSérie(Drive) 'Essa função retorna o número de série do HD

Dim FS As Object, D As Object, S As String, TIPO()
TIPO = Array("Desconhecido", "Removível", "Fixo", "Rede", "CD-Rom", "RAM Disc")
Set FS = CreateObject("Scripting.FileSystemObject")
Set D = FS.GetDrive(FS.GetDriveName(FS.GetAbsolutePathName(Drive)))
'S = "Unidade " & D.DriveLetter & ": - " & TIPO(D.DriveType)

If TIPO(D.DriveType) <> "Fixo" Then
NumSérie = S
Else
S = S & " SN: " & D.SerialNumber
NumSérie = S
End If
MsgBox D.SerialNumber

End Function

Com esse número em mãos eu insiro na minha planilha dentro da na função que analisa o número do HD que está no computador. É a mesma função que me retorna o número, porém inclui um If para analisar se o número é o mesmo que está registrado, caso contrário a planilha não abre.

Function NumSérie(Drive)

Dim FS As Object, D As Object, S As String, TIPO()
TIPO = Array("Desconhecido", "Removível", "Fixo", "Rede", "CD-Rom", "RAM Disc")
Set FS = CreateObject("Scripting.FileSystemObject")
Set D = FS.GetDrive(FS.GetDriveName(FS.GetAbsolutePathName(Drive)))
S = "Unidade " & D.DriveLetter & ": - " & TIPO(D.DriveType)

If TIPO(D.DriveType) <> "Fixo" Then
NumSérie = S
Else
S = S & " SN: " & D.SerialNumber
NumSérie = S
End If


If D.SerialNumber <> -137756912 Then 'inserir aqui o número do HD para a execução do programa "-137756912".
MsgBox ("Licença não liberada")

Dim Resp As Variant
Resp = InputBox(Senha, "Insira senha de Acesso")

If Resp <> 123 Then 'Exit Sub****************** 'Senha de acesso restrito **************************************

Application.Quit

ElseIf Resp = "" Then
Application.Quit

Else

MsgBox ("Seja bem vindo Helder, a planilha está liberada para você!!!")
End If
End If
End Function


Eu chamo essa função no Workbook_Open, para que a planilha antes de abrir verifique se o HD é o que está liberado para utilizar ou se irei inserir a senha de acesso (123) caso o cliente me envie a planilha para atualização, assim ela abre com a minha senha ou pelo número do HD do meu cliente. Se ele trocar de computador é só enviar uma planilha com a primeira função e anotar o novo número da máquina. Se pode inserir também uma matriz com vários números de HD autorizados a abrir essa planilha.

Private Sub Workbook_Open()
NumSérie (Drive)
End Sub

Ela irá verificar se é o computador correto, caso contrário o arquivo nem abre.

Quanto ao desabilitar o botão de gravar macros, é exatamente para ninguém rodar aquela macro que quebra as senhas das planilhas.

O conhecimento é uma das poucas coisas que aumenta quando se divide.
Abraço
Avatar do usuário
Por Parkeless
Posts Avatar
#5642
Helder,

Interessante, vou testar, obrigado =D

Mas a pergunta que não quer calar kk, colocar senha no VBE, dá certo para o seu caso?

Porque através disso você não consegue gravar nem incluir códigos na sua planilha, mas não sei se ainda dá para rodar um código de quebra de senha a partir de outra pasta de trabalho aberta... só testando
Por Helder
Posts
#5690
Bom dia pessoal, ainda não consegui descobrir. Tenho que encontrar a planilha com essa configuração para postar para vocês.

Como digo para meus alunos, o Excel só não faz chover, ainda...
E vamos seguindo estudando, pesquisando e aprendendo.

Obrigado e abraço.
Avatar do usuário
Por WagnerMorel
Posts Avatar
#5698
Prezados,

Bom dia!

Apenas tentando contribuir um pouco mais com a questão, gostaria de explicitar que nenhum código que coloquemos em nossos projetos VBA e nenhuma senha de proteção (do projeto ou da planilha) impede que pessoas não autorizadas vasculhem, mexam e alterem o que fizemos!

Nada é 100% seguro! Existe na internet uma variedade imensa de soluções, pagas ou gratuitas, que se prestam a desbloqueio e quebra de senhas de projeto e de planilha. Fora isso, basta utilizar um programa de planilha eletrônica com o Calc da suíte BROffice para abrir o arquivo Excel que ele, simplesmente, escancara todo o seu arquivo, mostrando senhas, código, formulários, etc.
Por Helder
Posts
#5965
Bom amigos, gostei da dica do Wagner e por isso vou dar essa dúvida por resolvida. Daqui uns dias mando mais umas, estou trabalhando numa planilha montada em VBA para controle de uma oficina.

Abraços e Boas Festas!!!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord