Prezados,
A Macro abaixo não funciona. Ao clicar na repetição da senha surgiu a mensagem: "Subscrito fora do Intervalo". E não completa o travamento das planilhas. O que pode ser? Como fazê-la funcionar?
Muito Obrigado.
Veja abaixo os códigos que usei:
Sub
lsProtegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String, lpass1 As String, lpass2 As String
Dim lQtdePlan As Long
Dim lPlanAtual As Long
Do
'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário
lpass1 = InputBox("Proteger todas as planilhas:", "Senha")
lpass2 = InputBox("Proteger todas as planilhas:", "Confirma sua Senha")
'Se deixar sem senha for permitido, sugiro emitir um aviso antes de prosseguir e alterar o teste a seguir.
If lpass1 = lpass2 And lpass1 <> vbNullString Then lPass = lpass1: Exit Do
'Aqui você pode incluir um escape se for possível desistir de inserir senha (basta incluir uma variável na resposta do MsgBox):
MsgBox "As senhas digitadas não conferem, tente de novo!", vbCritical, "Erro nas senhas!"
Loop
'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:=True, Contents:=True, Scenarios:=True, Password:=lPass
'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend
'O método MsgBox exibe um formulário de aviso ao usuário.
MsgBox "Planilhas protegidas!"
End
Sub
Marco Antonio.