Transcript
Page 1: Vba   cadastro de clientes

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: 

Page 2: Vba   cadastro de clientes

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;

Page 3: Vba   cadastro de clientes

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: 

Page 4: Vba   cadastro de clientes

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

Page 5: Vba   cadastro de clientes

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

Page 6: Vba   cadastro de clientes

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;

Page 7: Vba   cadastro de clientes

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. 

Page 8: Vba   cadastro de clientes

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

Page 9: Vba   cadastro de clientes

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


Top Related