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 básico usando os recursos do VBA Excel na versão 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 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:
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;
Em seguida usando a Caixa de Ferramentas inclua os seguintes controles no formulário:
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;
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 Clientes que exibirá Obs:
Cada controle possui
as suas propriedades acessadas da mesma forma, Faremos isso para cada controle Label, TextBox e ComboBox inserido no formulário. |
O leiaute 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;
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 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 |
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 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 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:
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 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 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 |
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;
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;
Executando o projeto iremos ver o formulário ser exibido conforme a figura
abaixo.
Só resta digitar as informações do cliente e ver a inclusão 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 ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: