Como Criar Tela de Login no Excel VBA
Como criar uma tela de login no Excel VBA passo-a-passo. No artigo veja o código, faça o download da planilha e também veja a vídeo-aula.
Especialista em Excel
Tela de Login Excel VBA
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
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.
Planilha de Controle Financeiro no Excel
Tenha um controle bonito e completo do seu financeiro.
- Categorias e subcategorias já configuradas
- Planilhas separadas por tabela (configuração, lançamentos, resumo)
- Personalize com suas próprias categorias e ícones
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.
Tela de Login Excel VBA
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
Este conteúdo foi útil?
Continue lendo

Como Criar Suplementos VBA no Excel
Criar um suplemento VBA no Excel é uma das formas mais poderosas de transformar suas automações em ferramentas profissionais e reutilizáveis.

Tela de Login no Excel com Banco de Dados Access
Neste artigo você aprenderá como criar uma tela de login no Excel com Banco de Dados Access com download da planilha gratuita.

Criar Funções no Excel com VBA Excel
Neste artigo você aprenderá como criar funções no Excel com VBA. Este recurso é muito interessante funções que não existem no Excel.

