Você está na página 1de 28

Excel Macros e Programao em VBA

Campus Curitiba Departamento Acadmico de Matemtica Angela Olandoski Barboza


3 de junho de 2009
UTFPR Damat

Pg. 1

Excel Macros e Programao em VBA


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:

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 2

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Preparao da Planilha Mude o nome da segunda planilha para Estados; Digite os dados mostrados na figura a seguir

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 3

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Preparao da Planilha Mude o nome da terceira planilha para Cidades; Digite os dados mostrados na figura a seguir

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 4

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do User Form Coloque os seguintes objetos no UserForm:

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 5

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do User Form Clique uma vez no CommandButton1 e mude a propriedade Name para Gravar e Caption para Gravar.

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 6

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do User Form Clique uma vez no CommandButton2 e mude a propriedade Name para Pesquisar e Caption para Pesquisar.

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 7

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do User Form Clique uma vez no CommandButton3 e mude a propriedade Name para Excluir e Caption para Excluir.

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 8

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do User Form Clique uma vez no CommandButton4 e mude a propriedade Fechar para Gravar e Caption para Fechar.

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 9

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Construo do UserForm
Clique no UserForm; Na caixa de propriedades, altere as propriedades Name e Caption, como mostra a figura:

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 10

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 11

Excel Macros e Programao em VBA


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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 12

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 13

Excel Macros e Programao em VBA


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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 14

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 15

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 16

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 17

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Boto Gravar 'Limpar os botes CheckBox e 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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 18

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Boto Fechar Dados.Hide

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 19

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 20

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Boto Pesquisar With Worksheets("Dados Clientes").Range("A:A") Set c = .Find(TextBox1.Value, LookIn:=xlValues, _ LookAt:=xlPart) If Not c Is Nothing Then 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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 21

Excel Macros e Programao em VBA


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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 22

Excel Macros e Programao em VBA


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 End With Linha1:
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 23

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Boto Excluir 'Declarar a varivel Resp para receber uma resposta Dim Resp As Integer 'Fazer a busca do registro digitado pelo usurio With Worksheets("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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 24

Excel Macros e Programao em VBA


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
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 25

Excel Macros e Programao em VBA


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 End With Exit Sub
3 de junho de 2009
UTFPR Damat

Apostila - 131

Pg. 26

Excel Macros e Programao em VBA


Exemplo: Cadastro de Clientes
Evento para a ComboBox1 D um duplo clique sobre a ComboBox1; Voc ter o esqueleto mostrado a seguir;

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 27

Excel Macros e Programao em VBA


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

3 de junho de 2009

UTFPR Damat

Apostila - 131

Pg. 28