Vous êtes sur la page 1sur 18

Neste artigo vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA criando um formulrio de login

de forma a solicitar a autenticao do usurio para que ele tenha acesso a uma planilha que desejamos que tenha um acesso restrito. Obs: Veja o meu artigo - VBA - Criando um formulrio de Login - que mostra como criar um formulrio de login com recurso de criptografar a senha. uma aplicao 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 verso 2007; Conhecimentos bsicos sobre planilhas , clulas, e Visual Basic;

Antes de iniciar temos que realizar duas configuraes no Microsoft Excel 2007:

Ativar a guia do desenvolvedor; Habilitar a execuo de macros;

Obs: A necessidade de habilitar a execuo de macros que por padro, o Excel coloca um nvel de segurana mais elevado pois cdigos maliciosos podem ser executados em scripts atravs de macros no Excel. Vamos ativar a guia do desenvolvedor e logo em seguida habilitar a execuo de macros. Para ativar a guia do desenvolvedor (se ainda no estiver ativa) siga os seguintes passos: Abra o Excel 2007 e ative o Menu principal de opes clicando no boto superior a esquerda, conforme a figura abaixo;

A seguir clique na guia Opes do Excel para abrir a janela - Opes do Excel;

Nesta janela, selecione o item - Mais Usados - e a seguir marque o item Mostrar guia Desenvolvedor na Faixa de Opes e clique no boto OK; No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurana de Macro;

Na janela Central de Confiabilidade selecione a opo - Configuraes de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:

Pronto , feito isso j podemos iniciar o desenvolvimento da aplicao VBA no Excel 2007. Abra ento o Excel 2007 , ser aberta uma planilha em branco. Clique ento no boto no canto superior a esquerda para abrir o menu principal de opes; Selecione a opo 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 trs planilhas padro: Plan1, Plan2 e Plan3; Vamos inserir uma nova planilha com o nome padro 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 usurio : login e senha; Plan3 - ser a planilha que ser apresentada quando abrirmos o arquivo Excel servindo como fundo para formulrio de Login ; Plan4 - Usaremos esta planilha para armazenar os dados do usurio que acessou a planilha e a data de acesso;

Vamos comear com a planilha Plan1


Essa planilha ser exibida somente se o usurio for corretamente autenticado atravs 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 opo Propriedades para exibir a janela de Propriedades; Selecione a propriedade Picture e na janela de Dilogo - 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: Formulrio Principal - rea Restrita;

A planilha final dever ter a seguinte aparncia. (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 formulrio de login que iremos exibir quando o arquivo Excel for aberto. Vamos ento 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 usurio, seu login e senha. Para isso vamos usar as clulas A e B e definir os dados conforme a figura abaixo:

Nesta planilha temos dois usurios definidos: Macoratti e Admin e suas respectivas senhas. Poderamos definir mais usurios a nosso critrio.

Definindo a planilha Plan4


A planilha Plan4 ser usada para registrar o acesso feito pelo usurio a senha e a data de acesso. Assim que o usurio realizar a autenticao, se ela for bem sucedida iremos gravar as essas informaes na planilha Plan4. Dessa forma iremos apenas definir nas clulas A, B e C o contedo conforme imagem a seguir:

Agora que ja definimos o papel e os dados de cada planilha vamos criar o formulrio de Login.

Criando o formulrio de Login


Com a planilha Excel aberta pressione as teclas ALT+F11. Se preferir clique no menu Desenvolvedor e a seguir na opo Visual Basic. Isso abrira o Editor Visual Basic; No editor Visual Basic clique no menu Inserir e a seguir em UserForm;

m novo formulrio 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 formulrio; sua direita temos a Janela de Propriedades do controle selecionado que iremos usar para definir o nome e outras propriedades dos controles;

Vamos ento arrastar a partir da caixa de ferramentas os seguintes controles para o formulrio e a seguir vamos alterar as propriedades indicadas conforme abaixo:

1 Formulrio = name= frmLogin, Caption= Login e backColor=&H00000000&(preto) 2 Caixas de Texto : name= txtLogin , name= txtSenha , PasswordChar = * 2 Rtulos = Caption = Usuario , Caption = Senha 2 Botes de Comando = name= cdmEntrar / Caption=Entrar , name=cmdCancelar / Caption=Sair

De forma que leiaute do formulrio tenha a seguinte aparncia:

Agora vamos definir o cdigo necessrio para realizar a autenticao do usurio e assim permitir ou no o seu acesso a planilha Excel Plan1. Para isso vamos usar o evento Click do boto cmdEntrar. Clique duas vezes no boto Entrar para abrir o evento Click associado a este boto de comando ou clique com o boto do mouse sobre o boto e a seguir clique em Exibir Cdigo; Digite o cdigo abaixo no evento Click do boto Entrar : Private Sub cmdEntrar_Click() If txtLogin = "" Then MsgBox "Digite o nome do usurio !" Exit Sub txtLogin.SetFocus Else If txtSenha = "" Then MsgBox "Digite a senha do usurio !" 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 "Usurio no esta cadastrado" Exit Sub End If Wend Dim senha As String lin = 2 col = 2 senha = Plan2.Cells(lin, col).Value If txtSenha <> senha Then MsgBox "A senha no 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.DisplayWorkbookTab s = False Hide End If End Sub Vamos entender o cdigo: If txtLogin = "" Then MsgBox "Digite o nome do usurio !" Exit Sub txtLogin.SetFocus Else Verificamos se o nome do usurio foi informado em caso positivo

If txtSenha = "" Then MsgBox "Digite a senha do verificamos usurio !" se a senha foi Exit Sub informada. txtSenha.SetFocus End If End If Percorremos a planilha Plan2 a partir col = 1 da linha 1 e lin = 2 coluna 2 e While (Plan2.Cells(lin, col) <> verificamos txtLogin) se o valor lin = lin + 1 igual ao If lin > 50 Then nome do MsgBox "Usurio no esta usurio; cadastrado" Percorremos Exit Sub at a linha 50 End If e se nada for Wend encontrado ento samos da rotina; Se o nome foi encontrado obtemos a Dim senha As String respectiva col = 2 senha na senha = Plan2.Cells(lin, coluna 2 e col).Value linha onde o nome foi encontrado; If txtSenha <> senha Then Verificamos se a senha MsgBox "A senha no informada confere !!" igual a Exit Sub obtida da Else MsgBox "Seja Bem Vindo " & planilha Plan2; txtLogin lin = 2 Em caso col = 1 While (Plan4.Cells(lin, col) positivo armazenamos <> "") na planilha lin = lin + 1 Plan4 os Wend valores de Plan4.Cells(lin, 1) = login, senha e txtLogin.Value Plan4.Cells(lin, 2) =

txtSenha.Value Plan4.Cells(lin, 3) = Date Plan1.Visible = xlSheetVisible Sheets("Plan1").Activate

data de hoje;

Exibimos a planilha Plan11 Ativamos a planilha ActiveWindow.DisplayWorkbookTabs Plan1 e escondemos = False a planilha Hide atual. End If

Agora vamos definir o cdigo do evento Click do boto cmdSair. Clique duas vezes no boto Sair para abrir o evento Click associado a este boto de comando ou clique com o boto do mouse sobre o boto e a seguir clique em Exibir Cdigo; Digite o cdigo abaixo no evento Click do boto Sair : Private Sub cmdCancelar_Click() Application.DisplayAlerts = False ActiveWorkbook.Save Application.Quit End Sub O cdigo acima inibe as mensagens de alerta do Excel , salva o workbook e sai do Excel. Vamos definir tambm o cdigo do evento Terminate do formulrio frmLogin. Selecione o formulrio e clique com o boto direito do mouse e a seguir clique em Exibir Cdigo; Na janela de cdigo selecione UserForm e o evento Terminate;

A seguir digite o cdigo abaixo neste evento: Private Sub UserForm_Terminate() Application.DisplayAlerts = False ActiveWorkbook.Save Application.Quit End Sub

Exibindo o formulrio de Login


Queremos que quando o usurio abra a pasta de trabalho, e por consequncia a planilha, o formulrio de login seja apresentado para informao do usurio 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 cdigo VBA clique com o boto direito do mouse sobre o item EstaPasta_de_trabalho e selecione o item Exibir Cdigo; A seguir inclua o cdigo conforme mostra a figura baixo no evento Activate do WorkBook:

O cdigo acima exibe a planilha Plan3 e em seguida o formulrio de login:

Ao informar o usurio e senha corretos exibida uma mensagem de boas vindas ao usurio:

Na planilha Plan4 vemos os dados que foram armazenados referente ao login efetuado:

Dessa forma mostramos uma outra forma de criar um formulrio de Login usando VBA e o Excel. Pegue a planilha com o cdigo VBA aqui: VBA_LoginExcel.zip

Salmos 5:9 Porque no h fidelidade na boca deles; as suas entranhas so verdadeiras maldades, a sua garganta um sepulcro aberto; lisonjeiam com a sua lngua. Salmos 5:10 Declara-os culpados, Deus; que caiam por seus prprios conselhos; lana-os fora por causa da multido de suas transgresses, pois se revoltaram contra ti.
Veja os Destaques e novidades do SUPER CD VB 2012 (sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super CD .NET e no Super DVD .NET , confira... Quer aprender C# ?? Chegou o Super DVD C# 2012 com exclusivo material de suporte e vdeo aulas com curso bsico sobre C#

Vous aimerez peut-être aussi