Criando Soluções inteligentes

Protegendo uma planilha através de uma macro

23/06/2014 18:53

Já imaginou proteger sua planilha utilizando botões e comandos VBA? Veja como não é tão complicado como parece, pois, bastando poucas ações, é possível proporcionar uma maior segurança aos seus dados.

A utilização e familiarização com comandos VBA é importante para usuário que desejam customizar e facilitar suas ações na ferramenta Excel. O comando que iremos ensinar consiste na criação de janelas de colocação de senha para bloqueio e desbloqueio da planilha de documentos. Como exemplo, utilizaremos uma planilha contendo um suposto cadastro de clientes com seus respectivos documentos, devendo mantê-los, portanto, em sigilo.

1 -  Ao criar o documento, reserve a primeira planilha para a colocação dos botões de proteção da mesma. Portanto, na planilha 2, disponhas os dados dos clientes.

2 - Na planilha 1, crie primeiramente o botão de Proteger Planilha, através da opção Inserir, da abaDesenvolvedor, onde deverás optar por Botão, dentre as alternativas de controle de Formulário.

3 - Ao criar o botão, aparecerá a janela para a atribuição de uma macro, clique em Novo para adicionar o comando.

4 -  Apague a mensagem que estiver no campo de comandos e cole o VBA que segue:

'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

        'Solicita a senha

    'O método InputBox é utilizado para solicitar um valor através de um formulário

    lPass = InputBox("Proteger todas as planilhas:", "Senha", ActName)

        'Inicia as variáveis

    'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo

    lQtdePlan = Worksheets.Count

    lPlanAtual = 1

        'Loop pelas planilhas

    'A função While realiza um loop de codigo 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

5 - Feche a janela do Visual Basic e edite o nome do botão. Após, com a criação da macro concluída, devemos aplicá-la a este botão e para isso, clique com o botão direito do mouse sobre ele e opte porAtribuir macro...

6 - Selecione a macro criada e confirme.

7 - Agora, devemos criar o botão para Desproteger Planilha. Proceda da mesma maneira, só que ao invés do comando anterior, crio o seguinte:

'Função que desprotege todas as planilhas de um arquivo

Sub lsDesprotegerTodasAsPlanilhas()

    'Declara as variáveis necessárias

    Dim lPass As String

    Dim lQtdePlan As Integer

    Dim lPlanAtual As Integer

        'Solicita a senha

    'O método InputBox é utilizado para solicitar um valor através de um formulário

    lPass = InputBox("Desproteger todas as planilhas:", "Senha", ActName)

        'Inicia as variáveis

    'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo

    lQtdePlan = Worksheets.Count

    lPlanAtual = 1

        '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 .UnProtect desprotege a planilha

        ActiveSheet.Unprotect 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 desprotegidas!"

End Sub

8 - Feche a janela do Visual Basic, dê um nome para o botão e atribua a nova macro para ele.

9 - Agora, ao clicar no botão de Proteger, lhe pedirá uma senha para a proteção, opte por uma senha e confirme.

10 - Perceba que a planilha estará bloqueada, somente disponível para visualização, estando todas as suas ferramentas inutilizadas. E, para que possa desbloqueá-la, clique no botão de Desproteger Planilha, digite a senha escolhida anteriormente e confirme.

Contudo, a criação destes campos de colocação de senhas poderá trazer grande nível de segurança para seus dados. E, com o uso destes comandos VBA, você irá se familiarizando com esta super ferramenta responsável por inúmeras ações, consideradas muitas vezes impossíveis pelos usuários.

Voltar

Pesquisar no site

Excel Soluções