vba cadastro de clientes
TRANSCRIPT
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 1/9
VBA ‐ Cadastro de Clientes (Excel)
Neste artigo eu volto ao velho e bom VBA‐Visual Basic for Applications para mostrar como criar um cadastrode clientes básico usando os recursos do VBA Excel na versão Microsoft Excel 2002. (pode ser aberto no Excel2007)
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ãodireito do mouse sobre o nome da planilha e no menu suspenso selecione Renomear digitando a seguir onovo 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 dadosnas 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 aseguir:
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 2/9
Encerrada esta primeira parte já podemos criar o nosso formulário de cadastro que servirá para o usuáriodigitar as informações que desejamos armazenar.
Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir selecione o item UserForm;
O formulário UserForm1 será apresentado no editor conforme a figura abaixo:
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, txtNascimento2 ComboBox ‐ cboEstado e cboCidade2 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 doformulário;
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 3/9
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áo título no formulário;Vamos alterar também a propriedade Name para Dados;
Obs: Cada controle possui as suas propriedades acessadas da mesmaforma,basta selecionar o controle e pressionar F4, e, em seguida seleciona apropriedadeque desejamos alterar e informar o novo valor.
Faremos isso para cada controle Label, TextBox e ComboBox inserido noformulá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:
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 4/9
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 foraminseridas.
A próxima etapa será incluir do código nos botões de comando. Vamos usar o evento Click que ocorre quandoo 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 ajanela 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 planilhaThisWorkbook.Worksheets("Dados Clientes").Activate'Selecionar a célula A3Range("A3").Select
'Procurar a primeira célula vaziaDo If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End IfLoop Until IsEmpty(ActiveCell) = True
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 5/9
'Carregar os dados digitados nas caixas de texto para a planilhaActiveCell.Value = txtCPF.ValueActiveCell.Offset(0, 1).Value = txtNome.ValueActiveCell.Offset(0, 2).Value = txtEndereco.ValueActiveCell.Offset(0, 3).Value = cboEstado.ValueActiveCell.Offset(0, 4).Value = cboCidade.ValueActiveCell.Offset(0, 5).Value = txtTelefone.ValueActiveCell.Offset(0, 6).Value = txtEmail.ValueActiveCell.Offset(0, 7).Value = txtNascimento.Value
'Carregar o sexo do cliente dos botões de opçãoIf OptionButton1.Value = True Then ActiveCell.Offset(0, 8).Value = "Masculino"Else ActiveCell.Offset(0, 8).Value = "Feminino"End If
'Limpar as caixas de textotxtCPF.Value = EmptytxtNome.Value = EmptytxtEndereco.Value = EmptytxtTelefone.Value = EmptytxtEmail.Value = EmptytxtNascimento.Value = Empty'Limpar as caixas de combinaçãocboEstado.Value = EmptycboCidade.Value = Empty
'Limpar os botões OptionButtonOptionButton1.Value = FalseOptionButton2.Value = False'Colocar o foco na primeira caixa de textotxtCPF.SetFocusEnd 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 textoIf txtCPF.Text = "" Then MsgBox "Digite o CPF de um cliente" txtCPF.SetFocus Exit SubEnd IfWith 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 IfElse MsgBox "Cliente não localizado!"End IfEnd WithEnd 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
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 6/9
Dim Resp As Integer
'Fazer a busca do registro digitado pelo usuárioWith 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 IfElse MsgBox "Cliente não encontrado!"End IfEnd WithExit SubEnd Sub
Finalmente temos o código do botão Fechar que é mostrado a seguir:
Private Sub cmdFechar_Click() Dados.HideEnd Sub
Agora vamos voltar para nossa planilha pressionando Alt+Q ou no menu Arquivo‐> Fechar e voltar para oMicrosoft 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 Exibira opção Barras de Ferramentas e selecione Visual Basic;
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 7/9
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.
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 8/9
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 ?
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
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
VBA Agenda Simples no ExcelVB .NET ‐ Incluindo uma tabela do Word em um DataGridView
15/12/2015 VBA Cadastro de Clientes
http://www.macoratti.net/10/10/vba_ccli.htm 9/9
Visual Studio Tools for Office (VSTO) ‐ IntroduçãoVBA ‐ Excel : Acessando dados com ADOSeção VBA e VSTO do site : seção VBA e VSTO
José Carlos Macoratti