Você está na página 1de 20

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;
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;
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;
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;
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;

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;

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:

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;

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
ExcelPlan1.

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 !"
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.DisplayWor
kbookTabs = False
Hide
End If
End Sub

Vamos entender o código:

         If txtLogin = "" Then


Verificamo
            MsgBox "Digite o nome
s se o nome
do usuário !"
do usuário
            Exit Sub
foi
            txtLogin.SetFocus
informado
        Else
em caso
          If txtSenha = "" Then
positivo
                MsgBox "Digite a
verificamos
senha do usuário !"
se a senha
                Exit Sub
foi
                txtSenha.SetFocus
informada.
          End If
 
        End If
Percorremo
s a planilha
Plan2 a
partir da
linha 1 e
        col = 1
coluna 2 e
        lin = 2
verificamos
        While (Plan2.Cells(lin, col)
se o valor é
<> txtLogin)
igual ao
            lin = lin + 1
nome do
            If lin > 50 Then
usuário;
                MsgBox "Usuário não
esta cadastrado"
Percorremo
                Exit Sub
s até a linha
            End If
50 e se
        Wend
nada for
encontrado
então
saímos da
rotina;
        Dim senha As String Se o nome
        col = 2 foi
        senha = Plan2.Cells(lin, encontrado
col).Value obtemos a
respectiva
senha na
coluna 2 e
linha onde
o nome foi
encontrado;
Verificamo
s se a senha
If txtSenha <> senha Then informada é
MsgBox "A senha não igual a 
confere !!" obtida da
Exit Sub planilha
Else Plan2;
MsgBox "Seja Bem Vindo
" & txtLogin Em caso
lin = 2 positivo
col = 1 armazenam
While (Plan4.Cells(lin, os na
col) <> "") planilha
lin = lin + 1 Plan4 os
Wend valores de
Plan4.Cells(lin, 1) = login, senha
txtLogin.Value e data de
Plan4.Cells(lin, 2) = hoje;
txtSenha.Value
Plan4.Cells(lin, 3) = Exibimos a
Date planilha
Plan1.Visible = Plan11
xlSheetVisible Ativamos a
Sheets("Plan1").Activate planilha
Plan1
ActiveWindow.DisplayWorkbook e
Tabs = False escondemo
Hide s a planilha
End If 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.Display
Alerts = False

ActiveWorkbook.Sa
ve
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_Termi
nate()

Application.Displ
ayAlerts = 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:

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:
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 enviando emails - Macoratti.net
 VBA-Integrando aplicativos Office - Macoratti.net
 VBA - Agenda de Visitas (Excel) - Macoratti.net
 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

Você também pode gostar