Vba cadastro de clientes

  • Published on
    15-Apr-2017

  • View
    117

  • Download
    6

Transcript

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 1/9

    VBA Cadastro de Clientes (Excel)

    Neste artigo eu volto ao velho e bom VBAVisual Basic for Applications para mostrar como criar um cadastrode clientes bsico usando os recursos do VBA Excel na verso Microsoft Excel 2002. (pode ser aberto no Excel2007)

    Abra o Microsoft Excel 2002 e crie um novo arquivo Excel salvandoo com o nome CadastroClientes.xls.

    Em seguida altere o nome da primeira planilha para Dados Clientes; para fazer isso clique com o botodireito do mouse sobre o nome da planilha e no menu suspenso selecione Renomear digitando a seguir onovo nome;

    Feito isso digite nas clulas de A1 at I1 o cabealho da planilha conforme figura abaixo:

    Repita o procedimento alterando o nome da segunda planilha para Estados e em seguida digitando os dadosnas clulas 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 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 2/9

    Encerrada esta primeira parte j podemos criar o nosso formulrio de cadastro que servir para o usuriodigitar as informaes que desejamos armazenar.

    Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir selecione o item UserForm;

    O formulrio UserForm1 ser apresentado no editor conforme a figura abaixo:

    Em seguida usando a Caixa de Ferramentas inclua os seguintes controles no formulrio:

    6 Labels vou usar o nome padro;6 Caixas de Texto txtCPF, txtNome, txtEndereco, txtTelefone, txtEmail, txtNascimento2 ComboBox cboEstado e cboCidade2 OptionButton vou usar o nome padro;4 CommandButton cmdGravar, cmdPesquisar, cmdExcluir, cmdFechar

    Agora vamos formatar os controles :

    Para incluir um ttulo do formulrio selecione o mesmo e pressione F4 para exibir a caixa de propriedades doformulrio;

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 3/9

    A janela de propriedades exibe todas as propriedades do formulrio;

    Podemos alterar qualquer propriedade que desejarmos;

    Vamos alterar a propriedade Caption para Cadastro de Clientes que exibiro ttulo no formulrio;Vamos alterar tambm 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 noformulrio.

    O leiaute do formulrio completo dever ficar da seguinte forma:

    Observe que nosso projeto j exibe o arquivo Excel , as planilhas e o formulrio 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 VBACadastrodeClientes

    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 cdigo 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

    ObservequeafontededadosarefernciaaplanilhaCidadesindicandoaclulainicialefinalondeasinformaesforaminseridas.

    A prxima etapa ser incluir do cdigo nos botes de comando. Vamos usar o evento Click que ocorre quandoo usurio clica no boto.

    Comeando com o boto Gravar, clique duas vezes sobre o mesmo no Editor Visual Basic e ser aberto ajanela de cdigo para o evento Click.

    A seguir digite o cdigo abaixo no evento Click do boto Gravar:

    Private Sub cmdGravar_Click()

    'Ativar a primeira planilhaThisWorkbook.Worksheets("Dados Clientes").Activate'Selecionar a clula A3Range("A3").Select

    'Procurar a primeira clula vaziaDo If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End IfLoop Until IsEmpty(ActiveCell) = True

  • 15/12/2015 VBACadastrodeClientes

    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 botes de opoIf 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 combinaocboEstado.Value = EmptycboCidade.Value = Empty

    'Limpar os botes OptionButtonOptionButton1.Value = FalseOptionButton2.Value = False'Colocar o foco na primeira caixa de textotxtCPF.SetFocusEnd Sub

    Agora vejamos o cdigo do evento Click do boto 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 boto de opo If c.Offset(0, 8) = "Masculino" Then OptionButton1.Value = True Else OptionButton2.Value = True End IfElse MsgBox "Cliente no localizado!"End IfEnd WithEnd Sub

    Vejamos agora o cdigo do evento Click do boto Excluir:Private Sub cmdExcluir_Click()'Declarar a varivel Resp para receber uma resposta

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 6/9

    Dim Resp As Integer

    'Fazer a busca do registro digitado pelo usurioWith 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, "Confirmao") 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 no ser excludo!" End IfElse MsgBox "Cliente no encontrado!"End IfEnd WithExit SubEnd Sub

    Finalmente temos o cdigo do boto 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 boto para carregar o formulrio que acabamos de criar;

    Para isso vamos ativar a barra de ferramentas do Visual Basic na planilha. Para isso selecione no menu Exibira opo Barras de Ferramentas e selecione Visual Basic;

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 7/9

    Em seguida selecione o Boto de comando na barra de ferramentas e inclua na planilha.

    Selecione o controle e pressione F4 e altere a sua propriedade Caption para Cadastar;

    Executandooprojetoiremosveroformulrioserexibidoconformeafiguraabaixo.

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 8/9

    Srestadigitarasinformaesdoclienteeverainclusonaplanilha.

    Simples,simplesassim...

    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 Bsico VB .NET Vdeo Aulas

    Quer aprender C# ??

    Chegou o Super DVD C# com exclusivo material de

    suporte e vdeo aulas com curso bsico sobre C#.

    Curso C# Basico Video Aulas

    Gostou ? Compartilhe no Facebook Compartilhe no Twitter

    Referncias:

    VBAAgendaSimplesnoExcelVB .NET Incluindo uma tabela do Word em um DataGridView

    http://www.macoratti.net/10/10/CadastroClientes.ziphttp://www.macoratti.net/destaque.htmhttp://www.macoratti.net/destaques.htmhttp://www.macoratti.net/superdvd.htmhttp://www.macoratti.net/curso_vbnet_basico.htmhttp://www.macoratti.net/superdvdc.htmhttp://www.macoratti.net/curso_cshp_basico.htmjavascript: void(0);http://www.macoratti.net/10/10/vba_agda.htmhttp://www.macoratti.net/10/06/vbn_wgdv.htm

  • 15/12/2015 VBACadastrodeClientes

    http://www.macoratti.net/10/10/vba_ccli.htm 9/9

    Visual Studio Tools for Office (VSTO) IntroduoVBA Excel : Acessando dados com ADOSeo VBA e VSTO do site : seo VBA e VSTO

    Jos Carlos Macoratti

    http://www.macoratti.net/09/10/vs_tfo1.htmhttp://www.macoratti.net/vba_xls1.htmhttp://www.macoratti.net/pageview.aspx?catid=13http://www.macoratti.net/