Anda di halaman 1dari 10

VBA – CADASTRO DE CLIENTES

Nesta aula criaremos um cadastro de clientes básico usando os recursos


do VBA Excel.

EXCEL
Abra o Microsoft Excel 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 botão direito do mouse sobre o nome da
planilha e no menu suspenso selecione Renomear digitando a seguir o
novo nome.

Feito isso digite nas células de A1 até I1 o cabeçalho da planilha


conforme figura abaixo:

Repita o procedimento alterando o nome da segunda planilha


para Estados e em seguida digitando os dados nas células de A1 até
A6 conforme exibido na figura abaixo:

PÁGINA 1
EXCEL
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 formulário de


cadastro que servirá para o usuário digitar as informações que
desejamos armazenar.

Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir


selecione o item UserForm:

PÁGINA 2
O formulário UserForm1 será apresentado no editor conforme a figura
abaixo:

EXCEL
Em seguida usando a Caixa de Ferramentas inclua os seguintes
controles no formulário:

 6 Labels - vou usar o nome padrão;


 6 Caixas de Texto - txtCPF, txtNome, txtEndereco, txtTelefone,
txtEmail, txtNascimento
 2 ComboBox - cboEstado e cboCidade
 2 OptionButton - vou usar o nome padrão;
 4 CommandButton - cmdGravar, cmdPesquisar, cmdExcluir,
cmdFechar

Agora vamos formatar os controles:

Para incluir um título do formulário selecione o mesmo e


pressione F4 para exibir a caixa de propriedades do formulário:

PÁGINA 3
A janela de propriedades exibe todas as
propriedades do formulário;

Podemos alterar qualquer propriedade


que desejarmos;

Vamos alterar a
propriedade Caption para Cadastro de

EXCEL
Clientes que exibirá
o título no formulário;
Vamos alterar também 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
formulário.

O layout do formulário completo deverá ficar da seguinte forma:

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


formulário criados até agora.

Para exibir os estados no controle cboEstado vamos fazer o seguinte:

Selecione o controle cboEstado e pressione F4;

PÁGINA 4
Em seguida localize a propriedade RowSource e digite:

Estados!A2:A6 conforme abaixo:

EXCEL
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 código 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

PÁGINA 5
Observe que a fonte de dados é a referência a planilha Cidades indicando a
célula inicial e final onde as informações foram inseridas.

A próxima etapa será incluir do código nos botões de comando. Vamos


usar o evento Click que ocorre quando o usuário clica no botão.

Começando com o botão Gravar, clique duas vezes sobre o mesmo

EXCEL
no Editor Visual Basic e será aberto a janela de código para o
evento Click. A seguir digite o código abaixo no evento Click do botão
Gravar:

Private Sub cmdGravar_Click()

'Ativar a primeira planilha


ThisWorkbook.Worksheets("Dados Clientes").Activate
'Selecionar a célula A3
Range("A3").Select

'Procurar a primeira célula 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 botões de opção


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 combinação
cboEstado.Value = Empty
cboCidade.Value = Empty

'Limpar os botões OptionButton

PÁGINA 6
OptionButton1.Value = False
OptionButton2.Value = False
'Colocar o foco na primeira caixa de texto
txtCPF.SetFocus
End Sub

Agora vejamos o código do evento Click do botão Pesquisar:

EXCEL
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 botão de opção


If c.Offset(0, 8) = "Masculino" Then
OptionButton1.Value = True
Else
OptionButton2.Value = True
End If
Else
MsgBox "Cliente não localizado!"
End If
End With
End Sub

Vejamos agora o código do evento Click do botão Excluir:

Private Sub cmdExcluir_Click()


'Declarar a variável Resp para receber uma resposta
Dim Resp As Integer

'Fazer a busca do registro digitado pelo usuário


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, "Confirmação")
If Resp = vbYes Then

PÁGINA 7
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

EXCEL
txtNascimento.Value = Empty
OptionButton1.Value = False
OptionButton2.Value = False
'Colocar o foco na primeira caixa de texto
txtCPF.SetFocus
Else
MsgBox "O registro não será excluído!"
End If
Else
MsgBox "Cliente não encontrado!"
End If
End With
Exit Sub
End Sub

Finalmente temos o código do botão 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 botão para carregar o formulário que


acabamos de criar.

Para isso vamos ativar a barra de ferramentas do Visual Basic na


planilha. Para isso selecione no menu Exibir a opção Barras de
Ferramentas e selecione Visual Basic;

PÁGINA 8
EXCEL
Em seguida selecione o Botão de comando na barra de ferramentas e
inclua na planilha. Selecione o controle e pressione F4 e altere a sua
propriedade Caption para Cadastar;

PÁGINA 9
Executando o projeto iremos ver o formulário ser exibido conforme a figura
abaixo.

EXCEL
Só resta digitar as informações do cliente e ver a inclusão na planilha.

PÁGINA 10

Anda mungkin juga menyukai