vba cadastro de clientes

9
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 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:

Upload: rodrigo-deiner-torres

Post on 15-Apr-2017

167 views

Category:

Engineering


10 download

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