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

VBA

Embed Size (px)

Citation preview

Page 1: VBA

 

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: 

Page 2: VBA

Encerrada esta primeira parte já podemos criar o nosso formulário de cadastro que servirá para o usuário digitar 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: 

Page 3: VBA

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, txtNascimento 2 ComboBox - cboEstado e cboCidade 2 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 do formulário;

Page 4: VBA

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 mesma forma,basta selecionar o controle e pressionar F4, e, em seguida seleciona a propriedadeque desejamos alterar e informar o novo valor.

Faremos isso para cada controle Label, TextBox e ComboBox inserido no formulá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;

Page 5: VBA

Em seguida localize a propriedade RowSource e digite : Estados!A2:A6 conforme abaixo: 

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

Page 6: VBA

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 foram inseridas.

A próxima etapa será incluir do código nos botões de comando. Vamos usar o evento Click que ocorre quando o 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 a janela 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

'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

Page 7: VBA

'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 respostaDim 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

Page 8: VBA

'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 o Microsoft 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 Exibir a opção Barras de Ferramentas e selecione Visual Basic;

Page 9: VBA

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;

Page 10: VBA

Executando o projeto iremos ver o formulário ser exibido conforme a figura abaixo. 

Só resta digitar as informações do cliente e ver a inclusão na planilha.

Simples , simples assim...

Page 11: VBA