VBA Excel - Protege e Desprotege todas as planilhas - Protect and Unprotect all Worksheets
Quando entregamos alguns dos nossos trabalhos, desejamos fazê-lo de um modo que permaneçam intactos até que este chegue às mãos daquele que nos solicitou. Muito provavelmente já deparou-se com a seguinte situação:
Um dos seus Clientes (que lhe solicitou uma solução, e quem você havia pessoalmente entrevistado antes do desenvolvimento), pediu para que um assessor dele pudesse dar uma olhada no Dashboard, Scorecard ou Report, que você preparou, antes que ele mesmo o fizesse.O intuito do Cliente é oportuno, afinal de contas alguém pode poupar-lhe o tempo, por limar quaisquer aspectos que não estiverem em conformidade com o solicitado. Mas..., sempre tem um 'mas'. Aquele assessor dedicado, sabendo dos gostos tais como fonte, cores, tamanhos que o seu chefe gosta, decide aplicá-los a sua solução, sem ao menos imaginar que você mesmo já teve um todo um trabalho para harmonizar as cores, o ambiente e logomarca. Como impedir este auxiliares de comprometerem a Identidade Visual que você definiu?
Existe código prá isso? Sim, divirta-se!
Sub ProtectAllWorksheets()' Função que protege todas as planilhas de um arquivoDim lPass As StringDim lQtdePlan As IntegerDim lPlanAtual As Integer'Solicita a senhaLet lPass = InputBox("Proteger todas as planilhas:", "Senha", ActName)'Inicia as variáveisLet lQtdePlan = Worksheets.CountLet lPlanAtual = 1'Loop pelas planilhasWhile 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 digitadoActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=lPass'Muda o índice para passar para a próxima planilhaLet lPlanAtual = lPlanAtual + 1Wend'O método MsgBox exibe um formulário de aviso ao usuário.MsgBox "Planilhas protegidas!"End Sub
E como faço para desproteger?
Sub UnProtectAllWorksheets()' Função que desprotege todas as planilhas de um arquivoDim lPass As StringDim lQtdePlan As IntegerDim lPlanAtual As Integer'Solicita a senhaLet lPass = InputBox("Desproteger todas as planilhas:", "Senha", ActName)'Inicia as variáveisLet lQtdePlan = Worksheets.CountLet lPlanAtual = 1'Loop pelas planilhasWhile lPlanAtual <= lQtdePlan'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...Worksheets(lPlanAtual).Activate'O método .UnProtect desprotege a planilhaActiveSheet.Unprotect Password:=lPass'Muda o índice para passar para a próxima planilhaLet lPlanAtual = lPlanAtual + 1Wend'O método MsgBox exibe um formulário de aviso ao usuário.MsgBox "Planilhas desprotegidas!"End Sub
Veja também:
Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com