Notifications
Clear all

Proteger todas as planilhas com VBA

2 Posts
2 Usuários
0 Reactions
907 Visualizações
(@brunomotta)
Posts: 26
Eminent Member
Topic starter
 

Boa tarde pessoal,

Encontrei um código vba na net, para proteger todas as planilhas ativas, funcionou, porém com algumas falhas que são as seguintes.

O código:

'Função que protege todas as planilhas de um arquivo
Sub lsProtegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String
Dim lQtdePlan As Integer
Dim lPlanAtual As Integer
Dim lPlanOrigem As String

'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário
lPass = InputBox("Proteger todas as planilhas:", "Informe Senha", ActName)

'Inicia As variáveis
'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
lQtdePlan = Worksheets.Count
lPlanAtual = 1
lPlanOrigem = ActiveSheet.Name
'Loop pelas planilhas
'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
While lPlanAtual <= lQtdePlan
'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3…
Worksheets(lPlanAtual).Activate

'O método .Protect proteje a planilha passando os parâmetros para proteger
'objetos de desenho, conteúdo, cenários e passando o password digitado
ActiveSheet.protect DrawingObjects:=False, Contents:=True, Scenarios:=False, Password:=lPass

'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend
Worksheets(lPlanOrigem).Activate
'O método MsgBox exibe um formulário de aviso ao usuário.
MsgBox "Planilhas protegidas!"

End Sub

Quando executo a macro, aparece uma inputbox, pedindo a senha, blz até aí tudo bem, mas nesta linha tem as seguintes falhas:
1. Não existe máscara de senha " ******* ", gostaria que não mostra-se os caracteres ao digitar no campo da inputbox.
2. Mesmo não informando a senha, ou seja, deixando o campo de inserir senha em branco, e clicando em OK ou Cancelar, a macro executa. Gostaria que isso não fosse possível, se não, não tem nexo pedir senha concordam. Gostaria que quando clicasse em OK, sem digitar a senha, mostrasse uma msgbox " Favor informe a senha" e não executa a macro. Ou se clicar em Cancelar, fecha a msgbox e não executa a macro.

 
Postado : 26/10/2015 11:30 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

BrunoMotta,

Boa Tarde!

Veja se assim lhe atende.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 26/10/2015 12:47 pm