Beruflich Dokumente
Kultur Dokumente
Repita o procedimento alterando o nome da segunda planilha para Estados e em seguida digitando os dados nas clulas de A1 at A6 conforme exibido na figura abaixo:
www.macoratti.net/10/10/vba_ccli.htm
1/8
16/5/2011
Novamente altere o nome da terceira planilha para Cidades e em seguida digite os dados conforme exibido a seguir:
Encerrada esta primeira parte j podemos criar o nosso formulrio de cadastro que servir para o usurio digitar as informaes que desejamos armazenar. Pressione Alt+F11 para abrir o Editor Visual Basic e no menu Inserir selecione o item UserForm;
16/5/2011
6 Labels - vou usar o nome padro; 6 Caixas de Texto - txtCPF, txtNome, txtEndereco, txtTelefone, txtEmail, txtNascimento 2 ComboBox - cboEstado e cboCidade 2 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 do formulrio;
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 exibir o ttulo no formulrio; Vamos alterar tambm a propriedade Name para Dados; Obs: Cada controle possui as suas propriedades acessadas da mesma forma, basta selecionar o controle e pressionar F4, e, em seguida seleciona a propriedade que desejamos alterar e informar o novo valor. Faremos isso para cada controle Label, TextBox e ComboBox inserido no formulrio.
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:
www.macoratti.net/10/10/vba_ccli.htm
3/8
16/5/2011
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 Observe que a fonte de dados a referncia a planilha Cidades indicando a clula inicial e final onde as informaes foram inseridas. A prxima etapa ser incluir do cdigo nos botes de comando. Vamos usar o evento Click que ocorre quando o usurio clica no boto. Comeando com o boto Gravar, clique duas vezes sobre o mesmo no Editor Visual Basic e ser aberto a janela de cdigo para o evento Click. A seguir digite o cdigo abaixo no evento Click do boto Gravar:
www.macoratti.net/10/10/vba_ccli.htm
4/8
16/5/2011
ThisWorkbook.Worksheets("Dados Clientes").Activate 'Selecionar a clula A3 Range("A3").Select 'Procurar a primeira clula vazia Do If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End If Loop Until IsEmpty(ActiveCell) = True 'Carregar os dados digitados nas caixas de texto para a planilha ActiveCell.Value = txtCPF.Value ActiveCell.Offset(0, 1).Value = txtNome.Value ActiveCell.Offset(0, 2).Value = txtEndereco.Value ActiveCell.Offset(0, 3).Value = cboEstado.Value ActiveCell.Offset(0, 4).Value = cboCidade.Value ActiveCell.Offset(0, 5).Value = txtTelefone.Value ActiveCell.Offset(0, 6).Value = txtEmail.Value ActiveCell.Offset(0, 7).Value = txtNascimento.Value 'Carregar o sexo do cliente dos botes de opo If OptionButton1.Value = True Then ActiveCell.Offset(0, 8).Value = "Masculino" Else ActiveCell.Offset(0, 8).Value = "Feminino" End If 'Limpar as caixas de texto txtCPF.Value = Empty txtNome.Value = Empty txtEndereco.Value = Empty txtTelefone.Value = Empty txtEmail.Value = Empty txtNascimento.Value = Empty 'Limpar as caixas de combinao cboEstado.Value = Empty cboCidade.Value = Empty 'Limpar os botes OptionButton OptionButton1.Value = False OptionButton2.Value = False 'Colocar o foco na primeira caixa de texto txtCPF.SetFocus End Sub
www.macoratti.net/10/10/vba_ccli.htm
5/8
16/5/2011
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 If Else MsgBox "Cliente no localizado!" End If End With End Sub
Private Sub cmdFechar_Click() Dados.Hide End Sub Agora vamos voltar para nossa planilha pressionando Alt+Q ou no menu Arquivo-> Fechar e voltar para o
www.macoratti.net/10/10/vba_ccli.htm 6/8
16/5/2011
Microsoft 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 Exibir a opo Barras de Ferramentas e selecione Visual Basic;
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;
www.macoratti.net/10/10/vba_ccli.htm
7/8
16/5/2011
Executando o projeto iremos ver o formulrio ser exibido conforme a figura abaixo.
S resta digitar as informaes do cliente e ver a incluso na planilha. Simples , simples assim... Pegue o projeto completo : CadastroClientes.zip
Eu sei apenas VBA, mas eu gosto... Referncias: VBA - Agenda Simples no Excel VB .NET - Incluindo uma tabela do Word em um DataGridView Visual Studio Tools for Office (VSTO) - Introduo VBA - Excel : Acessando dados com ADO Seo VBA e VSTO do site : seo VBA e VSTO
Jos Carlos Macoratti
www.macoratti.net/10/10/vba_ccli.htm
8/8