Vba cadastro de clientes

Download Vba   cadastro de clientes

Post on 15-Apr-2017

123 views

Category:

Engineering

6 download

Embed Size (px)

TRANSCRIPT

<ul><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 1/9</p><p>VBA Cadastro de Clientes (Excel)</p><p>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)</p><p>Abra o Microsoft Excel 2002 e crie um novo arquivo Excel salvandoo com o nome CadastroClientes.xls.</p><p>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;</p><p>Feito isso digite nas clulas de A1 at I1 o cabealho da planilha conforme figura abaixo:</p><p>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: </p><p>Novamente altere o nome da terceira planilha para Cidades e em seguida digite os dados conforme exibido aseguir:</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 2/9</p><p>Encerrada esta primeira parte j podemos criar o nosso formulrio de cadastro que servir para o usuriodigitar as informaes que desejamos armazenar.</p><p>Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir selecione o item UserForm;</p><p>O formulrio UserForm1 ser apresentado no editor conforme a figura abaixo:</p><p>Em seguida usando a Caixa de Ferramentas inclua os seguintes controles no formulrio:</p><p>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</p><p>Agora vamos formatar os controles :</p><p>Para incluir um ttulo do formulrio selecione o mesmo e pressione F4 para exibir a caixa de propriedades doformulrio;</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 3/9</p><p>A janela de propriedades exibe todas as propriedades do formulrio;</p><p>Podemos alterar qualquer propriedade que desejarmos;</p><p>Vamos alterar a propriedade Caption para Cadastro de Clientes que exibiro ttulo no formulrio;Vamos alterar tambm a propriedade Name para Dados;</p><p>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.</p><p>Faremos isso para cada controle Label, TextBox e ComboBox inserido noformulrio.</p><p>O leiaute do formulrio completo dever ficar da seguinte forma:</p><p>Observe que nosso projeto j exibe o arquivo Excel , as planilhas e o formulrio criados at agora.</p><p>Para exibir os estados no controle cboEstado vamos fazer o seguinte:</p><p>Selecione o controle cboEstado e pressione F4;</p><p>Em seguida localize a propriedade RowSource e digite : Estados!A2:A6 conforme abaixo:</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 4/9</p><p>Para exibir as cidades de um estado selecionado vamos usar o evento Change do controle.</p><p>D um duplo clique no controle cboEstado e a seguir digite o cdigo a seguir no evento Change:</p><p>Private Sub cboEstado_Change() </p><p>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</p><p>ObservequeafontededadosarefernciaaplanilhaCidadesindicandoaclulainicialefinalondeasinformaesforaminseridas.</p><p>A prxima etapa ser incluir do cdigo nos botes de comando. Vamos usar o evento Click que ocorre quandoo usurio clica no boto.</p><p>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.</p><p>A seguir digite o cdigo abaixo no evento Click do boto Gravar:</p><p>Private Sub cmdGravar_Click()</p><p>'Ativar a primeira planilhaThisWorkbook.Worksheets("Dados Clientes").Activate'Selecionar a clula A3Range("A3").Select</p><p>'Procurar a primeira clula vaziaDo If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End IfLoop Until IsEmpty(ActiveCell) = True</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 5/9</p><p>'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</p><p>'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</p><p>'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</p><p>'Limpar os botes OptionButtonOptionButton1.Value = FalseOptionButton2.Value = False'Colocar o foco na primeira caixa de textotxtCPF.SetFocusEnd Sub</p><p>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)</p><p>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</p><p> '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</p><p>Vejamos agora o cdigo do evento Click do boto Excluir:Private Sub cmdExcluir_Click()'Declarar a varivel Resp para receber uma resposta</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 6/9</p><p>Dim Resp As Integer</p><p>'Fazer a busca do registro digitado pelo usurioWith Worksheets("Dados Clientes").Range("A:A")Set c = .Find(txtCPF.Value, LookIn:=xlValues, LookAt:=xlWhole)</p><p>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</p><p>Finalmente temos o cdigo do boto Fechar que mostrado a seguir:</p><p>Private Sub cmdFechar_Click() Dados.HideEnd Sub</p><p>Agora vamos voltar para nossa planilha pressionando Alt+Q ou no menu Arquivo&gt; Fechar e voltar para oMicrosoft Excel;</p><p>Na planilha vamos incluir um boto para carregar o formulrio que acabamos de criar;</p><p>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;</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 7/9</p><p>Em seguida selecione o Boto de comando na barra de ferramentas e inclua na planilha.</p><p>Selecione o controle e pressione F4 e altere a sua propriedade Caption para Cadastar;</p><p>Executandooprojetoiremosveroformulrioserexibidoconformeafiguraabaixo.</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 8/9</p><p>Srestadigitarasinformaesdoclienteeverainclusonaplanilha.</p><p>Simples,simplesassim...</p><p>Pegue o projeto completo : CadastroClientes.zip</p><p>Eu sei apenas VBA, mas eu gosto...</p><p>Veja os Destaques e novidades do SUPER DVD Visual Basic</p><p>2013 (sempre atualizado) : clique e confira !</p><p>Quer migrar para o VB .NET ?</p><p>Veja mais sistemas completos para a plataforma .NET</p><p>no Super DVD .NET , confira...</p><p>Curso Bsico VB .NET Vdeo Aulas</p><p>Quer aprender C# ??</p><p>Chegou o Super DVD C# com exclusivo material de</p><p>suporte e vdeo aulas com curso bsico sobre C#.</p><p>Curso C# Basico Video Aulas</p><p> Gostou ? Compartilhe no Facebook Compartilhe no Twitter</p><p>Referncias:</p><p>VBAAgendaSimplesnoExcelVB .NET Incluindo uma tabela do Word em um DataGridView</p><p>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</p></li><li><p>15/12/2015 VBACadastrodeClientes</p><p>http://www.macoratti.net/10/10/vba_ccli.htm 9/9</p><p>Visual Studio Tools for Office (VSTO) IntroduoVBA Excel : Acessando dados com ADOSeo VBA e VSTO do site : seo VBA e VSTO</p><p>Jos Carlos Macoratti</p><p>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/</p></li></ul>