Buscar

EXCEL - VBA   Criando um formulário de Login

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 1/15
VBA ‐  Criando um formulário de Login
(revisitado)
Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA
criando um formulário de login de forma a solicitar a autenticação do usuário para que ele tenha acesso
a uma planilha que desejamos que tenha um acesso restrito.
Obs: Veja o meu artigo ‐ VBA ­ Criando um formulário de Login ­ que mostra como criar um formulário de
login com recurso de criptografar a senha.
É uma aplicação simples que mostra aos iniciantes e interessados como automatizar tarefas no Microsoft
Excel usando a linguagem VBA. Só isso.
Os recursos usados no projeto deste artigo foram:
Microsoft Excel versão 2007;
Conhecimentos básicos sobre planilhas , células, e Visual Basic;
Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:
Ativar a guia do desenvolvedor;
Habilitar a execução de macros;
Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de
segurança mais elevado pois códigos maliciosos podem ser executados em scripts através de macros no
Excel.
Vamos ativar a guia do desenvolvedor e logo  em seguida habilitar a execução de macros.
Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:
Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme
a figura abaixo;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 2/15
A seguir clique na guia Opções do Excel para abrir a janela ‐ Opções do Excel;
Nesta janela, selecione o item ‐ Mais Usados ‐ e a seguir marque o item ‐ Mostrar guia Desenvolvedor
na Faixa de Opções e clique no botão OK;
No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 3/15
Na janela Central de Confiabilidade selecione a opção ‐ Configurações de Macro ‐ e marque o item
para habilitar todas as macros conforme a figura abaixo:
Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.
Abra então o Excel 2007 , será aberta uma planilha em branco. Clique então no botão no canto superior
a esquerda para abrir o menu principal de opções;
Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 4/15
Em seguida informe o nome do arquivo : VBA_LoginExcel
Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3; Vamos inserir uma
nova planilha com o nome padrão de Plan4 clicando duas vezes no local ou pressionando SHIFT+F11;
Agora vamos definir o papel de cada planilha em nosso projeto Excel;
Plan1 ‐ será a planilha que desejamos acessar e que deverá estar protegida;
Plan2 ‐ será a planilha onde vamos armazenar os dados do usuário : login e senha;
Plan3 ‐ será a planilha que será apresentada quando abrirmos o arquivo Excel servindo como fundo
para formulário de Login ;
Plan4 ‐ Usaremos esta planilha para armazenar os dados do usuário que acessou a planilha e a data
de acesso;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 5/15
Vamos começar com a planilha Plan1
Essa planilha será exibida somente se o usuário for corretamente autenticado através de Login e Senha;
Geralmente essa planilha deverá conter dados restritos mas no nosso exemplo iremos apenas exibir a
planilha e uma imagem.
Vamos incluir um controle Imagem nesta planilha.
Selecione a planilha Plan1 e clique no menu Desenvolvedor e a seguir no ícone Inserir;
Selecione o controle Imagem;
Arraste‐o e dimensione‐o na planilha Plan1 e a seguir clique na opção Propriedades para exibir a janela
de Propriedades;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 6/15
Selecione a propriedade Picture e na janela de Diálogo ‐ Carregar Figura ‐ escolha uma imagem para
ser exibida no controle;
Ao final defina a propriedade PictureTiling como True e digite um texto acima da imagem com os
dizeres: Formulário Principal ‐ Área Restrita;
A planilha final deverá ter a seguinte aparência. (Fique a vontade para colocar nesta planilha o que melhor lhe convier)
Definindo a planilha Plan3
A planilha Plan3 deverá servir apenas como fundo para o formulário de login que iremos exibir quando o arquivo Excel for
aberto.
Vamos então realizar os mesmos procedimentos feitos com a planilha Plan1 e incluir uma controle Imagem nesta planilha e
definir uma imagem e um texto;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 7/15
Abaixo temos o resultado final da planilha Plan3:
Definindo a planilha Plan2
Na planilha Plan2 vamos armazenar os dados do usuário, seu login e senha.
Para isso vamos usar as células A e B e definir os dados conforme a figura abaixo:
Nesta planilha temos dois usuários definidos: Macoratti e Admin e suas respectivas senhas. Poderíamos definir mais
usuários a nosso critério.
Definindo a planilha Plan4
A planilha Plan4 será usada para registrar o acesso feito pelo usuário a senha e a data de acesso.
Assim que o usuário realizar a autenticação, se ela for bem sucedida iremos gravar as essas informações na planilha Plan4.
Dessa forma iremos apenas definir nas células A, B e C o conteúdo conforme imagem a seguir:
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 8/15
Agora que ja definimos o papel e os dados de cada planilha vamos criar o formulário de Login.
Criando o formulário de Login
Com a planilha Excel aberta pressione as teclas ALT+F11. Se preferir clique no menu Desenvolvedor e a
seguir na opção Visual Basic.
Isso abrira o Editor Visual Basic; No editor Visual Basic clique no menu Inserir e a seguir em UserForm;
m novo formulário chamado UserForm será criado na área de trabalho do Editor.
Ao seu lado irá aparecer a Caixa de Ferramentas contendo os controles que vamos usar para criar o
formulário;
À sua direita temos a Janela de Propriedades do controle selecionado que iremos usar para definir o
nome e outras propriedades dos controles;
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 9/15
Vamos então arrastar a partir da caixa de ferramentas os seguintes controles para o formulário e a seguir
vamos alterar as propriedades indicadas conforme abaixo:
1 Formulário = name= frmLogin, Caption= Login e backColor=&H00000000&(preto)
2 Caixas de Texto : name= txtLogin , name= txtSenha , PasswordChar = *
2 Rótulos = Caption = Usuario , Caption = Senha
2 Botões de Comando = name= cdmEntrar / Caption=Entrar ,  name=cmdCancelar / Caption=Sair
De forma que leiaute do formulário tenha a seguinte aparência:
Agora vamos definir o código necessário para realizar a autenticação do usuário e assim permitir ou não
o seu acesso a planilha Excel Plan1.
Para isso vamos usar o evento Click do botão cmdEntrar.
Clique duas vezes no botão Entrar para abrir o evento Click associado a este botão de comando ou clique com o botão do
mouse sobre o botão e a seguir clique em Exibir Código;
Digite o código abaixo no evento Click do botão Entrar :
Private Sub cmdEntrar_Click() 
 If txtLogin = "" Then
 MsgBox "Digite o nome do usuário !"
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 10/15
 Exit Sub
 txtLogin.SetFocus
 Else
 If txtSenha = "" Then
 MsgBox "Digite a senha do usuário !"Exit Sub
 txtSenha.SetFocus
 End If
 End If
 col = 1
 lin = 2
 While (Plan2.Cells(lin, col) <> txtLogin)
 lin = lin + 1
 If lin > 50 Then
 MsgBox "Usuário não esta cadastrado"
 Exit Sub
 End If
 Wend 
 Dim senha As String
 col = 2
 senha = Plan2.Cells(lin, col).Value 
 If txtSenha <> senha Then
 MsgBox "A senha não confere !!"
 Exit Sub
 Else
 MsgBox "Seja Bem Vindo " & txtLogin 
 lin = 2
 col = 1
 While (Plan4.Cells(lin, col) <> "")
 lin = lin + 1
 Wend 
 Plan4.Cells(lin, 1) = txtLogin.Value 
 Plan4.Cells(lin, 2) = txtSenha.Value 
 Plan4.Cells(lin, 3) = Date
 Plan1.Visible = xlSheetVisible 
 Sheets("Plan1").Activate
 ActiveWindow.DisplayWorkbookTabs = False 
 Hide
 End If
End Sub
Vamos entender o código:
         If txtLogin = "" Then
            MsgBox "Digite o nome do usuário !"
            Exit Sub
            txtLogin.SetFocus
        Else
Verificamos
se o nome do
usuário foi
informado
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 11/15
          If txtSenha = "" Then
                MsgBox "Digite a senha do usuário !"
                Exit Sub
                txtSenha.SetFocus
          End If
        End If
em caso
positivo
verificamos
se a senha foi
informada.
 
        col = 1
        lin = 2
        While (Plan2.Cells(lin, col) <> txtLogin)
            lin = lin + 1
            If lin > 50 Then
                MsgBox "Usuário não esta cadastrado"
                Exit Sub
            End If
        Wend
Percorremos
a planilha
Plan2 a partir
da linha 1 e
coluna 2 e
verificamos
se o valor é
igual ao
nome do
usuário;
Percorremos
até a linha 50
e se nada for
encontrado
então saímos
da rotina;
        Dim senha As String
        col = 2
        senha = Plan2.Cells(lin, col).Value
Se o nome
foi
encontrado
obtemos a
respectiva
senha na
coluna 2 e
linha onde o
nome foi
encontrado;
 If txtSenha <> senha Then
 MsgBox "A senha não confere !!"
 Exit Sub
 Else
 MsgBox "Seja Bem Vindo " & txtLogin 
 lin = 2
 col = 1
 While (Plan4.Cells(lin, col) <> "")
 lin = lin + 1
 Wend 
 Plan4.Cells(lin, 1) = txtLogin.Value 
 Plan4.Cells(lin, 2) = txtSenha.Value 
 Plan4.Cells(lin, 3) = Date
 Plan1.Visible = xlSheetVisible 
 Sheets("Plan1").Activate
 ActiveWindow.DisplayWorkbookTabs = False 
Verificamos
se a senha
informada é
igual a 
obtida da
planilha
Plan2;
Em caso
positivo
armazenamos
na planilha
Plan4 os
valores de
login, senha e
data de hoje;
Exibimos a
planilha
Plan11
Ativamos a
planilha
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 12/15
 Hide
 End If
Plan1
e
escondemos
a planilha
atual.
 
Agora vamos definir o código do evento Click do botão cmdSair.
Clique duas vezes no botão Sair para abrir o evento Click associado a este botão de comando ou clique com o botão do
mouse sobre o botão e a seguir clique em Exibir Código;
Digite o código abaixo no evento Click do botão Sair :
Private Sub cmdCancelar_Click() 
 Application.DisplayAlerts = False
 ActiveWorkbook.Save 
 Application.Quit
End Sub
O código acima inibe as mensagens de alerta do Excel , salva o workbook e sai do Excel.
Vamos definir também o código do evento Terminate do formulário frmLogin. Selecione o formulário e clique com o botão
direito do mouse e a seguir clique em Exibir Código;
Na janela de código selecione UserForm e o evento Terminate;
A seguir digite o código abaixo neste evento:
Private Sub UserForm_Terminate() 
 Application.DisplayAlerts = False
 ActiveWorkbook.Save 
 Application.Quit
End Sub
Exibindo o formulário de Login
Queremos que quando o usuário abra a  pasta de trabalho, e por consequência a planilha, o formulário de
login seja apresentado para informação do usuário e senha e a planilha Plan3 seja a planilha de fundo.
Para isso temos que usar o evento Activate da pasta de trabalho (WorkBook);
No editor de código VBA clique com o botão direito do mouse sobre o item EstaPasta_de_trabalho e
selecione o item Exibir Código;
A seguir inclua o código conforme mostra a figura baixo no evento Activate do WorkBook:
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 13/15
O código acima exibe a planilha Plan3 e em seguida o formulário de login:
Ao informar o usuário e senha corretos é exibida uma mensagem de boas vindas ao usuário:
Na planilha Plan4 vemos os dados que foram armazenados referente ao login efetuado:
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 14/15
Dessa forma mostramos uma outra forma de criar um formulário de Login usando VBA e o Excel.
Pegue a planilha com o código VBA aqui: VBA_LoginExcel.zip
Salmos 5:9 Porque não há fidelidade na boca deles; as suas entranhas são verdadeiras maldades, a sua
garganta é um sepulcro aberto; lisonjeiam com a sua língua. 
Salmos 5:10 Declara­os culpados, ó Deus; que caiam por seus próprios conselhos; lança­os fora por causa
da multidão de suas transgressões, pois se revoltaram contra ti.
Veja os Destaques e novidades do
SUPER DVD Visual Basic (sempre
atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Veja mais sistemas completos para
a plataforma .NET no Super DVD
.NET , confira...
Curso Básico VB .NET ‐ Vídeo
Aulas
Quer aprender C# ??
Chegou o Super DVD C# com
exclusivo material de suporte e
vídeo aulas com curso básico sobre
C#.
Curso C# Basico ‐ Video Aulas
VBA  ‐ Cadastro de Clientes (Excel)
VBA ‐ Cadastrando clientes e env iando emails ‐ Macoratti.net
VBA‐Integrando aplicativos Office ‐ Macoratti.net
VBA ‐ Agenda de Visitas (Excel) ‐ Macoratti.net
21/12/2017 VBA ­  Criando um formulário de Login
http://www.macoratti.net/12/12/vba_lgn1.htm 15/15
Visão geral do modelo de objeto Excel:  http://msdn.microsoft.com/pt‐
br/library/wss56bz7.aspx
Seção VBA  do Site
VBA ‐ Visual Basic for Aplications ‐ Macoratti.net
VBA ‐ Criando um formulário de Login
José Carlos Macoratti

Continue navegando