Você está na página 1de 11

VBA - Cadastro de Clientes (Excel)

Neste artigo eu volto ao velho e bom VBA-Visual Basic for Applications para
mostrar como criar um cadastro de clientes bsico usando os recursos do VBA
Excel na verso Microsoft Excel 2002. (pode ser aberto no Excel 2007)
Abra o Microsoft Excel 2002 e crie um novo arquivo Excel salvando-o com o
nome CadastroClientes.xls.
Em seguida altere o nome da primeira planilha para Dados Clientes; para
fazer isso clique com o boto direito do mouse sobre o nome da planilha e no
menu suspenso selecione Renomear digitando a seguir o novo nome;
Feito isso digite nas clulas de A1 at I1 o cabealho da planilha conforme
figura abaixo:

Repita o procedimento alterando o nome da segunda planilha para Estados e


em seguida digitando os dados nas clulas de A1 at A6 conforme exibido na
figura abaixo:

Novamente altere o nome da terceira planilha para Cidades e em seguida


digite os dados conforme exibido a seguir:

Encerrada esta primeira parte j podemos criar o nosso formulrio de


cadastro que servir para o usurio digitar as informaes que desejamos
armazenar.
Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir selecione
o item UserForm;

O formulrio UserForm1 ser apresentado no editor conforme a figura abaixo:

Em seguida usando a Caixa de Ferramentas inclua os seguintes controles no


formulrio:

6 Labels - vou usar o nome padro;


6 Caixas de Texto - txtCPF, txtNome, txtEndereco, txtTelefone,
txtEmail, txtNascimento

2 ComboBox - cboEstado e cboCidade

2 OptionButton - vou usar o nome padro;

4 CommandButton - cmdGravar, cmdPesquisar, cmdExcluir, cmdFechar

Agora vamos formatar os controles :


Para incluir um ttulo do formulrio selecione o mesmo e pressione F4 para
exibir a caixa de propriedades do formulrio;

A janela de propriedades exibe todas as


propriedades do formulrio;
Podemos alterar qualquer propriedade que
desejarmos;
Vamos alterar a
propriedade Caption para Cadastro de
Clientes que exibir
o ttulo no formulrio;
Vamos alterar tambm a
propriedade Name para Dados;
Obs: Cada controle possui as suas
propriedades acessadas da mesma forma,
basta selecionar o controle e pressionar F4,
e, em seguida seleciona a propriedade
que desejamos alterar e informar o novo
valor.
Faremos isso para cada controle Label,
TextBox e ComboBox inserido no
formulrio.
O leiaute do formulrio completo dever ficar da seguinte forma:

Observe que nosso projeto j exibe o arquivo Excel , as planilhas e o


formulrio criados at agora.
Para exibir os estados no controle cboEstado vamos fazer o seguinte:
Selecione o controle cboEstado e pressione F4;

Em seguida localize a propriedade RowSource e digite : Estados!


A2:A6 conforme abaixo:

Para exibir as cidades de um estado selecionado vamos usar o


evento Change do controle.
D um duplo clique no controle cboEstado e a seguir digite o cdigo a seguir
no evento Change:
Private Sub cboEstado_Change()
If cboEstado.Value = "BA" Then
cboCidade.RowSource = "Cidades!A2:A5"
ElseIf cboEstado.Value = "PR" Then
cboCidade.RowSource = "Cidades!B3:B5"
ElseIf cboEstado.Value = "SC" Then
cboCidade.RowSource = "Cidades!C3:C6"
ElseIf cboEstado.Value = "SP" Then
cboCidade.RowSource = "Cidades!D3:D8"
ElseIf cboEstado.Value = "GO" Then
cboCidade.RowSource = "Cidades!E3:E6"
End If
End Sub
Observe que a fonte de dados a referncia a planilha Cidades indicando a clula
inicial e final onde as informaes foram inseridas.

A prxima etapa ser incluir do cdigo nos botes de comando. Vamos usar o
evento Click que ocorre quando o usurio clica no boto.
Comeando com o boto Gravar, clique duas vezes sobre o mesmo no Editor
Visual Basic e ser aberto a janela de cdigo para o evento Click.
A seguir digite o cdigo abaixo no evento Click do boto Gravar:
Private Sub cmdGravar_Click()
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Dados Clientes").Activate
'Selecionar a clula A3
Range("A3").Select
'Procurar a primeira clula vazia
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = txtCPF.Value
ActiveCell.Offset(0, 1).Value = txtNome.Value
ActiveCell.Offset(0, 2).Value = txtEndereco.Value
ActiveCell.Offset(0, 3).Value = cboEstado.Value
ActiveCell.Offset(0, 4).Value = cboCidade.Value
ActiveCell.Offset(0, 5).Value = txtTelefone.Value
ActiveCell.Offset(0, 6).Value = txtEmail.Value
ActiveCell.Offset(0, 7).Value = txtNascimento.Value
'Carregar o sexo do cliente dos botes de opo
If OptionButton1.Value = True Then
ActiveCell.Offset(0, 8).Value = "Masculino"
Else
ActiveCell.Offset(0, 8).Value = "Feminino"
End If
'Limpar as caixas de texto
txtCPF.Value = Empty
txtNome.Value = Empty
txtEndereco.Value = Empty
txtTelefone.Value = Empty
txtEmail.Value = Empty
txtNascimento.Value = Empty
'Limpar as caixas de combinao
cboEstado.Value = Empty
cboCidade.Value = Empty
'Limpar os botes OptionButton
OptionButton1.Value = False
OptionButton2.Value = False
'Colocar o foco na primeira caixa de texto
txtCPF.SetFocus
End Sub

Agora vejamos o cdigo do evento Click do boto Pesquisar:


Private Sub cmdPequisar_Click()
'Verificar se foi digitado um nome na primeira caixa de texto
If txtCPF.Text = "" Then
MsgBox "Digite o CPF de um cliente"
txtCPF.SetFocus
Exit Sub
End If
With Worksheets("Dados Clientes").Range("A:A")
Set c = .Find(txtCPF.Value, LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
c.Activate
txtCPF.Value = c.Value
txtNome.Value = c.Offset(0, 1).Value
txtEndereco.Value = c.Offset(0, 2).Value
cboEstado.Value = c.Offset(0, 3).Value
cboCidade.Value = c.Offset(0, 4).Value
txtTelefone.Value = c.Offset(0, 5).Value
txtEmail.Value = c.Offset(0, 6).Value
txtNascimento.Value = c.Offset(0, 7).Value
'Carregando o boto de opo
If c.Offset(0, 8) = "Masculino" Then
OptionButton1.Value = True
Else
OptionButton2.Value = True
End If
Else
MsgBox "Cliente no localizado!"
End If
End With
End Sub

Vejamos agora o cdigo do evento Click do boto Excluir:


Private Sub cmdExcluir_Click()
'Declarar a varivel Resp para receber uma resposta
Dim Resp As Integer
'Fazer a busca do registro digitado pelo usurio
With Worksheets("Dados Clientes").Range("A:A")
Set c = .Find(txtCPF.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmao")
If Resp = vbYes Then
c.Select
Selection.EntireRow.Delete
'Limpar as caixas de texto
txtCPF.Value = Empty
txtNome.Value = Empty
txtEndereco.Value = Empty
cboEstado.Value = Empty
cboCidade.Value = Empty

txtTelefone.Value = Empty
txtEmail.Value = Empty
txtNascimento.Value = Empty
OptionButton1.Value = False
OptionButton2.Value = False
'Colocar o foco na primeira caixa de texto
txtCPF.SetFocus
Else
MsgBox "O registro no ser excludo!"
End If
Else
MsgBox "Cliente no encontrado!"
End If
End With
Exit Sub
End Sub

Finalmente temos o cdigo do boto Fechar que mostrado a seguir:


Private Sub cmdFechar_Click()
Dados.Hide
End Sub
Agora vamos voltar para nossa planilha pressionando Alt+Q ou no
menu Arquivo-> Fechar e voltar para o Microsoft Excel;
Na planilha vamos incluir um boto para carregar o formulrio que acabamos
de criar;
Para isso vamos ativar a barra de ferramentas do Visual Basic na planilha.
Para isso selecione no menu Exibir a opo Barras de Ferramentas e selecione
Visual Basic;

Em seguida selecione o Boto de comando na barra de ferramentas e inclua na


planilha.
Selecione o controle e pressione F4 e altere a sua
propriedade Caption para Cadastar;

Executando o projeto iremos ver o formulrio ser exibido conforme a figura abaixo.

S resta digitar as informaes do cliente e ver a incluso na planilha.

Simples , simples assim...


Pegue o projeto completo :

CadastroClientes.zip

Eu sei apenas VBA, mas eu gosto...


Veja os Destaques e novidades do SUPER
DVD Visual Basic 2013 (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 Bsico VB .NET - Vdeo


Aulas

Quer aprender C# ??

Chegou o Super DVD C# com


exclusivo material de suporte e
vdeo aulas com curso bsico sobre
C#.

Curso C# Basico - Video Aulas

Você também pode gostar