3 de junho de 2009 Pg. 1 Excel Macros e Programao em VBA Pg. 1 Campus Curitiba Departamento Acadmico de Matemtica Angela Olandoski Barboza UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 2 Excel Macros e Programao em VBA Pg. 2 Apostila - 131 Exemplo: Cadastro de Clientes Preparao da Planilha Salve a Pasta de Trabalho como Cadastro de Clientes.xls Mude o nome da primeira planilha para Dados Clientes Digite os ttulos como mostra a figura: UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 3 Excel Macros e Programao em VBA Pg. 3 Apostila - 131 Exemplo: Cadastro de Clientes Preparao da Planilha Mude o nome da segunda planilha para Estados; Digite os dados mostrados na figura a seguir UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 4 Excel Macros e Programao em VBA Pg. 4 Apostila - 131 Exemplo: Cadastro de Clientes Preparao da Planilha Mude o nome da terceira planilha para Cidades; Digite os dados mostrados na figura a seguir UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 5 Excel Macros e Programao em VBA Pg. 5 Apostila - 131 Exemplo: Cadastro de Clientes Construo do User Form Coloque os seguintes objetos no UserForm: UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 6 Excel Macros e Programao em VBA Pg. 6 Apostila - 131 Exemplo: Cadastro de Clientes Construo do User Form Clique uma vez no CommandButton1 e mude a propriedade Name para Gravar e Caption para Gravar. UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 7 Excel Macros e Programao em VBA Pg. 7 Apostila - 131 Exemplo: Cadastro de Clientes Construo do User Form Clique uma vez no CommandButton2 e mude a propriedade Name para Pesquisar e Caption para Pesquisar. UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 8 Excel Macros e Programao em VBA Pg. 8 Apostila - 131 Exemplo: Cadastro de Clientes Construo do User Form Clique uma vez no CommandButton3 e mude a propriedade Name para Excluir e Caption para Excluir. UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 9 Excel Macros e Programao em VBA Pg. 9 Apostila - 131 Exemplo: Cadastro de Clientes Construo do User Form Clique uma vez no CommandButton4 e mude a propriedade Fechar para Gravar e Caption para Fechar. UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 10 Excel Macros e Programao em VBA Pg. 10 Apostila - 131 Exemplo: Cadastro de Clientes Construo do UserForm Clique no UserForm; Na caixa de propriedades, altere as propriedades Name e Caption, como mostra a figura: UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 11 Excel Macros e Programao em VBA Pg. 11 Apostila - 131 Exemplo: Cadastro de Clientes Construo do UserForm Clique no UserForm; Selecione a ComboBox1, clicando sobre este objeto; Digite as linhas de comando mostradas na figura para a propriedade RowSource UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 12 Excel Macros e Programao em VBA Pg. 12 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar 'Ativar a primeira planilha 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 UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 13 Excel Macros e Programao em VBA Pg. 13 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar 'Carregar os dados digitados nas caixas de texto para a planilha ActiveCell.Value = TextBox1.Value ActiveCell.Offset(0, 1).Value = TextBox2.Value ActiveCell.Offset(0, 2).Value = TextBox3.Value ActiveCell.Offset(0, 3).Value = ComboBox1.Value ActiveCell.Offset(0, 4).Value = ComboBox2.Value UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 14 Excel Macros e Programao em VBA Pg. 14 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar 'Carregar as opes de carto de crdito If CheckBox1.Value Then ActiveCell.Offset(0, 5).Value ="Sim" Else ActiveCell.Offset(0, 5).Value ="No" End If If CheckBox2.Value Then ActiveCell.Offset(0, 6).Value ="Sim" Else ActiveCell.Offset(0, 6).Value ="No" End If UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 15 Excel Macros e Programao em VBA Pg. 15 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar If CheckBox3.Value Then ActiveCell.Offset(0, 7).Value ="Sim" Else ActiveCell.Offset(0, 7).Value ="No" End If UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 16 Excel Macros e Programao em VBA Pg. 16 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar '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 UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 17 Excel Macros e Programao em VBA Pg. 17 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar 'Limpar as caixas de texto TextBox1.Value = Empty TextBox2.Value = Empty TextBox3.Value = Empty 'Limpar as caixas de combinao ComboBox1.Value =Empty ComboBox2.Value =Empty UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 18 Excel Macros e Programao em VBA Pg. 18 Apostila - 131 Exemplo: Cadastro de Clientes Boto Gravar 'Limpar os botes CheckBoxe OptionButton CheckBox1.Value = False CheckBox2.Value = False CheckBox3.Value = False OptionButton1.Value =False OptionButton2.Value =False 'Colocar o foco na primeira caixa de texto TextBox1.SetFocus UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 19 Excel Macros e Programao em VBA Pg. 19 Apostila - 131 Exemplo: Cadastro de Clientes Boto Fechar Dados.Hide UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 20 Excel Macros e Programao em VBA Pg. 20 Apostila - 131 Exemplo: Cadastro de Clientes Boto Pesquisar 'Verificar se foi digitado um nome na primeira caixa de texto If TextBox1.Text = "" Then MsgBox"Digite o CPF de um cliente" TextBox1.SetFocus GoTo Linha1 End If UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 21 Excel Macros e Programao em VBA Pg. 21 Apostila - 131 Exemplo: Cadastro de Clientes Boto Pesquisar WithWorksheets("Dados Clientes").Range("A:A") Set c = .Find(TextBox1.Value, LookIn:=xlValues, _ LookAt:=xlPart) If Not c Is NothingThen c.Activate TextBox1.Value =c.Value TextBox2.Value =c.Offset(0, 1).Value TextBox3.Value =c.Offset(0, 2).Value ComboBox1.Value = c.Offset(0, 3).Value ComboBox2.Value = c.Offset(0, 4).Value UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 22 Excel Macros e Programao em VBA Pg. 22 Apostila - 131 Exemplo: Cadastro de Clientes Boto Pesquisar 'Carregando os cartes de crdito If c.Offset(0, 5) = "Sim" Then CheckBox1.Value = True End If If c.Offset(0, 6) = "Sim" Then CheckBox2.Value = True End If If c.Offset(0, 7) = "Sim" Then CheckBox3.Value = True End If UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 23 Excel Macros e Programao em VBA Pg. 23 Apostila - 131 Exemplo: Cadastro de Clientes Boto Pesquisar '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 encontrado!" End If EndWith Linha1: UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 24 Excel Macros e Programao em VBA Pg. 24 Apostila - 131 Exemplo: Cadastro de Clientes Boto Excluir 'Declarar a varivel Resp para receber uma resposta DimResp As Integer 'Fazer a busca do registro digitado pelo usurio WithWorksheets("Dados Clientes").Range("A:A") Set c = .Find(TextBox1.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 UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 25 Excel Macros e Programao em VBA Pg. 25 Apostila - 131 Exemplo: Cadastro de Clientes Boto Excluir 'Limpar as caixas de texto TextBox1.Value = Empty TextBox2.Value = Empty TextBox3.Value = Empty ComboBox1.Value = Empty ComboBox2.Value = Empty CheckBox1.Value = False CheckBox2.Value = False CheckBox3.Value = False OptionButton1.Value = False OptionButton2.Value = False UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 26 Excel Macros e Programao em VBA Pg. 26 Apostila - 131 Exemplo: Cadastro de Clientes Boto Excluir 'Colocar o foco na primeira caixa de texto TextBox1.SetFocus Else MsgBox"O registro no ser excludo!" End If Else MsgBox"Cliente no encontrado!" End If EndWith Exit Sub UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 27 Excel Macros e Programao em VBA Pg. 27 Apostila - 131 Exemplo: Cadastro de Clientes Evento para a ComboBox1 D um duplo clique sobre a ComboBox1; Voc ter o esqueleto mostrado a seguir; UTFPR Damat Excel Macros e Programao em VBA 3 de junho de 2009 Pg. 28 Excel Macros e Programao em VBA Pg. 28 Apostila - 131 Exemplo: Cadastro de Clientes Evento para a ComboBox1 Digite as seguintes linhas de comando: If ComboBox1.Value = "PR" Then ComboBox2.RowSource = "Cidades!A3:A7" ElseIf ComboBox1.Value = "SC" Then ComboBox2.RowSource = "Cidades!B3:B7" ElseIf ComboBox1.Value = "SP" Then ComboBox2.RowSource = "Cidades!C3:C7" End If