Como criar um login de acessos na planilha – Planilha de login grátis

Como criar um login de acessos na planilha – Planilha de login grátis

Como criar um login de acessos na planilha utilizando o usuário do login do Windows.

Com esta técnica é possível permitir ou não o acesso a pasta de trabalho, ou bloquear o acesso as planilhas da pasta de trabalho, conforme a função que o usuário está cadastrado.

A solução abaixo foi criada para realizar o controle de projetos, com a criação de projetos, atividades e apontamentos, além do seu controle na própria ferramenta.

O controle era feito através do login do Windows. O usuário ao abrir a planilha era identificado, e conforme a sua permissão eram liberados os acessos para ele enxergar somente os seus apontamentos e permissão de atualizá-los, ou no caso do gerente, acessar todos os dados.

No exemplo deste artigo, nós iremos utilizar algumas destas planilhas e realizar a permissão de acesso e bloqueio como feito no projeto acima.

Primeiro vamos habilitar a guia desenvolvedor, caso você não a tenha habilitada, pois iremos usar o VBA do Excel.

Como Habilitar guia Desenvolvedor no Excel 2007 e versões anteriores

  1. Clique em Arquivo->Opções, ou no símbolo do Office, conforme a sua versão do Excel.
  2. Clique em Opções e na aba Geral marque a opção Mostrar guia desenvolvedor na Faixa de Opções.

Habilitar guia Desenvolvedor no Excel 2010 e superiores

  1. Clique em Arquivo->Opções.
  2. Clique em Opções e na aba Personalizar Faixa de Opções marque a opção Mostrar guia desenvolvedor na Faixa de Opções.

A primeira etapa está resolvida. Agora vamos aprender como copiar procedimentos da internet e como colocar somente em uma pasta de trabalho e também como colocar habilitar sempre que o Excel for aberto.

Estrutura da planilha com login

No nosso exemplo estamos usando a seguinte estrutura:

Planilha de acesso

Esta planilha é a que utilizaremos para bloquear ou dar acesso à planilhas da pasta de trabalho.

O ponto de maior interesse nesta tabela são as colunas Nome rede e Função, sendo as outras meramente informativas.

A coluna Nome rede possui o login do usuário Windows do usuário que utilizará a planilha e a coluna Função se liga a permissão que ele terá na pasta de trabalho, sendo:

  1. Gerente: Acesso as planilhas Acesso, Projeto e Atividades
  2. Usuário: Acesso as planilhas Projeto e Atividades

Esta é a principal planilha do projeto e que pode ser utilizada nas suas pastas de trabalho também, basta seguir o mesmo padrão.

Planilha projetos

A planilha aonde são lançados os projetos da empresa.

Planilha atividades

Nesta planilha são encontradas as atividades ligadas a cada projeto.

Lembrando que esta estrutura que temos das planilhas Projetos e Atividades é meramente ilustrativa, usaremos elas apenas para a questão dos acessos.

Criar o login de acesso pelo usuário do Windows no Excel

Agora com tudo pronto, vamos colocar o código fonte da planilha. Para isso siga os seguinte passos.

  1. Pressione as teclas ALT+F11 para acessar o VBE (Visual Basic Editor), ou clique na guia Desenvolvedor e no botão Visual Basic
  2. No VBE clique em Inserir->Módulo
  3. Clique sobre o módulo e altere a propriedade Name para Acesso
  4. No módulo criado, cole o seguinte código VBA
Public lUsuarioLogado As String
Public lFuncao        As String

Function UsuarioRede() As String
    Dim GetUserN
    Dim ObjNetwork
    Set ObjNetwork = CreateObject("WScript.Network")
    GetUserN = ObjNetwork.UserName
    UsuarioRede = GetUserN
End Function

Public Sub lsValidarAcesso()
    On Error GoTo TratarErro
    Dim lNome As String
    
    lFuncao = WorksheetFunction.VLookup(lUsuarioLogado, ListaAcesso.Range("D:E"), 2, 0)
    lNome = WorksheetFunction.Index(ListaAcesso.Range("B:B"), WorksheetFunction.Match(lUsuarioLogado, ListaAcesso.Range("D:D"), 0))
        
    If lFuncao = "Gerente" Then
        Atividades.Unprotect Password:="123"
        Projetos.Unprotect Password:="123"
        ListaAcesso.Unprotect Password:="123"
    Else
        Atividades.Unprotect Password:="123"
        Projetos.Unprotect Password:="123"
    End If
    
Sair:
    Exit Sub
TratarErro:
    MsgBox "Usuário não cadastrado!" + vbCrLf + "Fale com um gerente do sistema para solicitar."
    GoTo Sair
End Sub


Public Sub lsBloquearAcesso()
    Atividades.Unprotect Password:="123"
    Projetos.Unprotect Password:="123"
    ListaAcesso.Unprotect Password:="123"

    Atividades.Range("B3:J1048576").Locked = True
    Projetos.Range("B3:E1048576").Locked = True
    ListaAcesso.Range("B3:F1048576").Locked = True

    Atividades.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFiltering:=True, Password:="123"
    Projetos.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFiltering:=True, Password:="123"
    ListaAcesso.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFiltering:=True, Password:="123"
End Sub

No código acima temos as funções e procedimentos:

UsuarioRede: Retorna qual o usuário logado na rede do windows no VBA do Excel.

lsValidarAcesso: Identifica se o usuário Windows está cadastrado na planilha Acesso e retorna a função, dando a permissão para as planilhas de acordo.

lsBloquearAcesso: Bloqueia todos os acessos da planilha, voltando ao estado inicial que temos ao abrir a planilha sem nenhum acesso.


Utilizando o login no Excel

Agora já temos a estrutura pronta para utilizar o login, temos a planilha de acessos e também o fonte VBA que permite fazer o controle do login pelo user Windows no VBA Excel.

Agora basta chamar o código ao abrir a planilha.

  1. Ainda no VBE clique em EstaPastaDeTrabalho
  2. Cole o seguinte código

Private Sub Workbook_Open()
    Dim lWorksheet As Worksheet

    lsBloquearAcesso

    lUsuarioLogado = Acesso.UsuarioRede
    lsValidarAcesso
End Sub

No código acima temos a chamada do evento Workbook_Open, ou seja, ao abrir a pasta de trabalho, faça este código.

Então é chamado o procedimento lsBloquearAcesso, que bloqueia toda a planilha conforme temos se não tivermos um usuário autorizado a editá-la.

Em seguida é chamada a função Acesso.UsuarioRede pela qual é retornado o usuário logado na rede Windows.

Por fim é executado o procedimento lsValidarAcesso que verifica o acesso do usuário e realiza ou não o desbloqueio das planilhas da pasta de trabalho.

Download da planilha com login de acessos Excel

Baixe a planilha

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

Sair da versão mobile