Escola Tech

Escola Tech
Diversos cursos gratuitos e Tutoriais para auxiliar seu dia a dia, cursos em todas as áreas (Excel, Word, HTML, SQL, VBA, Planilhas Diversas, Capacitação e muito mais)

Latest Posts

quinta-feira, 4 de janeiro de 2018

Como fazer uma tela de login no Excel

Romário Queiroz
Aprenda a fazer uma tela de login e otimize os seus documentos, trazendo um nível maior de segurança para o mesmo com o incrível recurso das userforms

Quer retornar mais segurança aos seus documentos do Excel? Deseja restringir seu acesse utilizando campos de login? A partir de comandos VBA é possível criar uma tela de login para acesso às informações contidas no documento, mediante usuário e senha.
O Excel possui diversas formas de retornar segurança aos dados colocados em suas planilhas, através de senhas de proteção, bloquear determinadas células ou criar objetos por meio de linhas de comando onde se pode definir usuário e senha de acesso. O método que iremos ensinar neste tutorial consiste em uma tela de login onde será criado um usuário e uma senha para serem colocados toda vez que o documento for aberto. Caso a pessoa que for acessá-lo errar ou não souber a senha, o documento se fechará.
Para utilizarmos os comandos VBA e as demais configurações que este dispõe, devemos ter ativo no Excel a aba Desenvolvedor, responsável por trazer estas ações. Se você não a tem ativa, acesse este outro tutorial e a ative de forma simples e rápida.



Para darmos início ao processo abra um documento em branco e crie uma nova planilha chamada "Senha" e nela as colunas "Usuário", "Senha" e "Formulário". Aqui você irá definir a quais planilhas (chamamos de "formulário") o usuário tem acesso, seu login e sua senha. Lembrando que o administrador deve ter acesso à planilha "Senha", ok? Pois só assim ele poderá adicionar novos users, novas senhas, mudar permissões de acesso, etc.
Como fazer uma tela de login no Excel
Repare que devemos repetir o processo para todos as planilhas que o usuário tiver acesso. No exemplo acima dei acesso ao admnistrador para todos os locais.

Criando a tela de login

A criação da tela é uma das etapas mais importante e um pouco mais complexa que as demais. Vá à aba Desenvolvedor e clique em Visual Basic, onde seremos direcionados á janela de edição de comandos VBA. (se não estiver vendo a guia desenvolvedor, clique aqui e coloque-a disponível em questões de minutos).
Como fazer uma tela de login no Excel
Na janela de edição, clique em Inserir e após em UserForm. Para nomear e ajustar o formulário localize o quadro de propriedades, localizado no lado esquerdo do mesmo. Nele, altere as seguintes informações: No campo Caption vocêcolocará Login e no campo (name) coloque frmLogin. Para ficar mais bonito vamos colocar um fundo preto escolhendo backColor=&H00000000&(preto) em BackColor Observe o resultado:
Como fazer uma tela de login no Excel
Crie um botão de comando e altere o campo Caption para OK.
Como fazer uma tela de login no Excel
Agora crie dois rótulos, representados pelo ícone com a letra "A". Em um deles iremos mudar o Caption para Usuário e outro para Senha. Para mudar o tamanho e o formatar o texto como achar melhor é só clicar nos 3 pontinhos ao lado da fonte, localizado entre as propriedades do rótulo. E se você colocou a caixinha na cor preta terá que colorir as palavras para a letra branca para ficar visível, é claro. Faça isso no campo ForeColor.
Como fazer uma tela de login no Excel
Agora é só criar as caixas de texto onde o usuário irá colocar login e senha. Para isso vá no botãozinho que tem o "Ab". Naquela que for referente ao nome do usuário você irá mudar o campo (Name) para txtUsuario - sem acento mesmo -  e aquela que for da senha para txtSenha. Ahh, e esta da senha precisa ter o campo PasswordChar com um *. Assim sua senha sairá criptografada.  
Como fazer uma tela de login no Excel
 Agora, vamos adicionar as linhas de comando do botão OK. Dê dois clique nele e na janela de edição que se abrir cole o seguinte código:
Private Sub CommandButton1_Click()
  Dim lTotal As Long
  Dim lContador As Long

  lsDesabilitar

    Sheets("Senha").Range("$A$1:$C$50000").AutoFilter Field:=1, Criteria1:="=" & txtUsuario.Text
    Sheets("Senha").Range("$A$1:$C$50000").AutoFilter Field:=2, Criteria1:="=" & txtSenha.Text

  lTotal = WorksheetFunction.Subtotal(3, Sheets("Senha").Range("A:A"))

  If lTotal > 1 Then
  ActiveWorkbook.Unprotect Password:="123"

    For lContador = 2 To lTotal
    Sheets(Sheets("Senha").Range("C" & lContador).Value).Visible = True
  Next lContador

  Unload frmLogin
    Else
    MsgBox "Usuário ou senha incorretos!"
  End If

  ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
  End Sub

  Private Sub txtUsuario_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  KeyAscii = Asc(UCase(Chr(KeyAscii)))
  End Sub

  Private Sub UserForm_Activate()
  txtUsuario.SetFocus
  End Sub

  Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 13 Then 
  SendKeys "{tab}" 
  KeyAscii = 0 
  End If
End Sub
Como fazer uma tela de login no Excel
O próximo passo é agora ir novamente na guia inserir e depois em Módulo. Repare que o que está em vermelho refere-se ao nome que consta em minhas planilhas. Adapte ao seu caso, ok? E se adicionar mais planilhas não esqueça de vir aqui e adicionar mais uma linha de código para ela.
Public Sub lsShow()
  frmLogin.Show
  End Sub

  Public Sub lsDesabilitar()
  ActiveWorkbook.Unprotect Password:="123"
    Sheets("Contas").Visible = False
    Sheets("Compras").Visible = False
    Sheets("Gastos").Visible = False
    Sheets("Senha").Visible = False
  ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
End Sub
O próximo passo é dar 2 cliques em "EstaPasta_de_trabalho" e colar o seguinte código na janelinha de edição que foi aberta:
Private Sub Workbook_Open()
  lsDesabilitar
End Sub
Como fazer uma tela de login no Excel
Agora vá lá na planilha e crie uma planilha chamada "Menu". Nela vamos criar um botão, conforme já aprendemos nesta aula. Depois você clica com o botão direito nele e em "Atribuir macro...". Na nova janela que aparecer selecione "isShow" e dê um ok.
Como fazer uma tela de login no Excel
Protinho. Agora feche a janela e salve seu documento como Modo Habilitado para Macro, caso contrário, todo trabalho será perdido.
Como fazer uma tela de login no Excel
Agora, toda vez que algum usuário tentar acessar seu documento precisará entrar com login e senha. Abaixo o download da mesma para você ver como ficou nosso trabalho.
Como fazer uma tela de login no Excel
 A senha para você começar a usar é 123 e o login é ADM.

Our Team

  • Syed Faizan AliMaster / Computers
  • Syed Faizan AliMaster / Computers
  • Syed Faizan AliMaster / Computers
  • Syed Faizan AliMaster / Computers
  • Syed Faizan AliMaster / Computers
  • Syed Faizan AliMaster / Computers