Como Criar Tela de Login no Excel VBA
Especialista em Excel

Veja neste artigo passo-a-passo como criar uma tela de login no Excel com VBA.
No resultado final criaremos uma tela de login que ao realizar o login iremos exibir ou ocultar planilhas conforme o usuário.
Criar a Planilha de Controle de Acesso
Para o controle de acesso nós criamos uma planilha com os seguintes campos:
- Usuário: Neste campo temos o nome do usuário, ele irá se repetir.
- Senha: Coloque a senha que irá se repetir também para o mesmo usuário.
- Formulário: E em formulário, ou podemos chamar também de planilha, você coloca o nome da planilha.

Eles serão utilizados para filtrar e liberar as planilhas conforme o usuário do login.
Criando o Formulário do Login VBA
A tela de login Excel será criada no VBA.
Para isso você deve inicialmente habilitar as macros neste link.
Após isto acesse em ALT+F11 ou clique na guia Desenvolvedor e em Visual Basic.
No VBA clique em Inserir -> Formulário e altere a propriedade name para frmLogin.

Em seguida clique no botão com as ferramentas conforme acima e abra a caixa de ferramentas.
Nele nós desenhamos usando o componente Rótulo ou Label para desenhar o texto na tela.
Altere a propriedade Caption colocando Login.
Adicione outros dois com os nomes Usuário e Senha.
Em seguida abra o Powerpoint e desenhe uma linha, ela será colada abaixo do login

Volte para o VBA e insira o objeto Imagem, desenhando logo abaixo de Login.
Volte ao powerpoint e copie a imagem, e depois na propriedade picture do componente Imagem que adicionou cole.

Clique agora na caixa de ferramentas e adicione o componente Caixa de Texto ou TextBox.
Adicione um para Usuário e outro para Senha, altere o name para txtUsuario e txtSenha respectivamente.

E por fim adicione o botão no componente Button ou Botão da caixa de ferramentas do VBA Excel.

Feito isso nós temos então o formulário pronto.
Código VBA para o Login
Agora vamos inserir os códigos VBA para realizar o login
Clique em Inserir -> Módulo e no módulo criado coloque o seguinte código:
Public Sub lsShow()
frmLogin.Show
End Sub
Public Sub lsDesabilitar()
On Error Resume Next
ActiveWorkbook.Unprotect Password = "123"
Plan1.Visible = xlSheetVeryHidden
Plan2.Visible = xlSheetVeryHidden
Plan3.Visible = xlSheetVeryHidden
Plan4.Visible = xlSheetVeryHidden
ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=False
End Sub
Então temos acima o código em lsShow para exibir o formulário e em lsDesabilitar um código para ocultar todas as planilhas e proteger a estrutura.
Agora vamos inserir o código para o formulário VBA.
Clique então no formulário dando duplo clique no formulário e depois colando o seguinte código:
Private Sub CommandButton1_Click()
Dim lTotal As Long
Dim lContador As Long
Dim lResultado As String
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
Unload frmLogin
Else
lResultado = MsgBox("O login está incorreto" + vbCrLf + "Tentar novamente?", vbYesNo, "Login incorreto")
If lResultado = vbYes Then
frmLogin.txtUsuario.SetFocus
Else
Application.Visible = True
ThisWorkbook.Save
ThisWorkbook.Close
End If
End If
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_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub
Em txtUsuario_KeyPress você tem um código para colocar em maiúsculo todos os dados digitados.
No UserForm_Activate ele dá foco no campo txtUsuario.
Em userForm_QueryClose ele irá bloquear para fechar a tela de login pelo botão X no topo.
No botão CommandButton1_Click nós temos então a verificação do login aonde irá filtrar o usuário e senha conforme digitado e então se for encontrado é feito um loop e liberadas as planilhas que aparecem no filtro.
Por fim, clique em EstaPasta_de_Trabalho e cole o seguinte código que vai abrir o formulário ao abrir a pasta de trabalho.
Private Sub Workbook_Open()
lsDesabilitar
frmLogin.Show
End Sub

O resultado é a tela acima, recomendo também assistir o vídeo ao topo deste artigo, aonde é demonstrado a criação desde o zero, e abaixo temos também o download da planilha.
Os usuários e senhas para teste são:
- Usuário: ADM
- Senha: 123456
ou
- Usuário: MARCOS
- Senha: 123
Download
Realize o download da planilha deste artigo no botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




