Excel Pro Fissional
Excel Pro Fissional
Excel Pro Fissional
Excel
INTRODUÇÃO
Por padrão, o Microsoft Excel apresenta três planilhas (a planilha é o principal documento usado no Excel para
armazenar e trabalhar com dados, também chamado planilha eletrônica. Uma planilha consiste em células
organizadas em colunas e linhas; ela é sempre armazenada em uma pasta de trabalho.), mas é possível inserir
planilhas adicionais. Com esse conceito, em vez de criar doze arquivos diferentes para mostrar os gastos de
sua empresa no ano, você poderá criar um único arquivo e utilizar doze planilhas em uma pasta de trabalho.
Para inserir rapidamente uma nova planilha ao final das planilhas existentes, clique na guia Inserir Planilha na
parte inferior da tela.
Dica: Você pode também clicar com o botão auxiliar do mouse na guia de uma planilha existente e, em
seguida, clicar em Inserir. Na guia Geral, clique em Planilha e clique em OK.
Excel
Criar Macros no Excel
O objetivo das macros é programar funções típicas do Excel de forma a facilitar a execução de tarefas
repetitivas.
Uma macro é um pequeno programa que contem uma lista de instruções a serem realizadas no Excel.
Uma macro pode executar um conjunto de tarefas através de um unico procedimento o qual pode
ser chamado rapidamente.
EXERCÍCIO
Objetivo: Gravar uma macro testando a diferença entre a execução de macros com referências absolutas
e referências relativas.
Obs: Por motivo de segurança, quando abrimos um arquivo do Excel que contenha macros ou controles
ActiveX, o programa bloqueia a ação desses objetos. No botão Opções da faixa Aviso de Segurança
habilite sua planilha para a execução das macros.
Excel
O VBA é derivado do Visual Basic. O Visual Basic é um ambiente de desenvolvimento completo, onde
podemos criar programas para o ambiente Windows.
Um programa comercial para controlar estoque de mercadorias pode ser criado utilizando o Visual
Basic.
Entretanto o VBA é uma linguagem bastante poderosa, embora não seja tão poderosa quanto o Visual
Basic, podemos usar para criação de aplicativos e automação de tarefas baseados nos aplicativos do
Microsoft Office: Access, Word, Excel,Power Point e Outlook.
É possivel acessar o editor do VBA por meio do atalho Alt+F11 ou por outra forma disponível pelo
programa.
Esta janela é dividida em três grandes áreas: Janela Project Explorer, Janela Propriedades, e do lado direito, a
Área de trabalho.
Excel
Figura 6.
Nesta janela poderá se visualizar a hierarquia dos
projetos de Visual Basic for Applications ativos nesse
momento. Entre eles deverá encontrar um cujo nome
corresponde ao nome de “Pasta de trabalho” (WorkBook)
Figura 7.
do Excel que você esta trabalhando.
VBAProject (Pasta1): É dentro deste projeto que deve-se Nesta janela você poderá visualizar e alterar
trabalhar para que todas as funcionalidades estejam as propriedades que d e f i n e m c a d a o b j e t o.
ativas sempre que necessário.
Janela de Edição
Sub Teste()
MsgBox "Sistema de Ensino Amazon", vbInformation, "Amazon"
End Sub
Figura 8.
Excel
No VBA para inserir um formulário clique em Inserir > UserForm:
Seleção Rótulo
Caixa de Texto Caixa de Combinação
Imagem RefEdit
Figura 9. Formulário para criação do projeto VBA
Figura 10.
Figura 12.
Figura 11.
No item Caption, da propriedade do
UserForm, nomeie como Cadastro de Clientes.
Figura 14.
Excel
Cadastro de Produtos
Para iniciar a criação de nosso cadastro ,abra uma nova planilha do Excel. Primeiro incluiremos os itens
na tabela, para em seguida trabalharmos no VBA.
Inicie a criação do formulário de registro de produto. Acesse o editor do Visual Basic por meio do atalho
Alt+F11 ou outra forma disponível pelo programa.
Clique em Inserir > Userform e acrescente três caixas de texto, três rótulos, e um botão de comando
usando a caixa de ferramentas.
Botão para adicionar a Caixa de ferramentas na
Barra de Menu Padrão do VBA:
1° Código
A partir de agora iremos inserir os códigos no formulário. Dê um duplo clique sobre o formulário (UserForm).
Excel
2° Código
Utilizado no botão “Cadastrar”
Representa a pasta de trabalho
1 Private Sub Cadastrar_Click() da janela ativa, a planilha ativa e
2 Sheets("Exercício 1").Activate a célula selecionada.
3 Range("A9").Select
4 Do A estrutura Do/Loop Until executa
5 If IsEmpty(ActiveCell) = False Then uma determinada tarefa enquanto
6 ActiveCell.Offset(1, 0).Select que a avaliação de uma condição
7 End If permaneça True ou então até que
8 Loop Until IsEmpty(ActiveCell) = True seja True (verdadeiro).
9 ActiveCell = Produto O método Offset provoca um
10 ActiveCell.Offset(0, 1) = CCur(Preco) deslocamento de um determinado
11 ActiveCell.Offset(0, 2) = CInt(Estoque) número de linhas e de colunas,
12 MsgBox "Produto cadastro com sucesso", vbInformation tendo como base o range (células
13 Unload Me absolutas selecionadas) ao qual
14 End Sub este método será aplicado.
Utilizando o painel de Propriedades (tecla de atalho F4) podemos definir os nomes para os controles e
formulários.
Definição do nome
do botão Cadastrar
Agora retorne a planilha e crie um botão para requisitar o formulário desenvolvido no VBA. Utilizando a guia
Desenvolvedor, clique no item Inserir - Controles de Formulário (você pode também encontrar o botão
Inserir Controles ao lado do botão Office.
Botão desenvolvido
através de Controles
de Formulário
Excel
Entrada de Produtos
Acesse o editor do Visual Basic (Alt+F11), Clique em Inserir > Userform e desenvolva o seguinte
formulário utilizando a Caixa de Ferramentas:
1° Código
Utilizado no botão “Cadastrar”
Excel
2º Código 3º Código
Utilizado no botão “Limpar” Utilizado no botão “Fechar”
Evento Ao clicar Evento Ao clicar
4º Código
Utilizado no UserForm
Dê um clique duplo no formulário para inserí-lo:
1 Private Sub UserForm_Initialize()
O campo Produto recebe o foco e
2 Produto.SetFocus
inicia em branco
3 Produto = ""
4 Preco = Format(0, "Currency") O campo Preço será definido como moeda e o
5 DataCadastro = Date campo DataCadastro apresentará a data atual
6 End Sub do sistema.
Figura 22. Produto adicionado na planilha com o auxílio do formulário Entrada de Produtos
Excel
Agenda de Compromissos
Com auxilio do VBA desenvolveremos uma agenda de compromissos. Abra uma nova planilha do
Excel e inclua os itens abaixo:
Excel
Figura 25.
Excel
Controle Financeiro
Iremos desenvolver um Controle Financeiro, unificando “Entrada” e “Saída” de dinheiro de forma que ele tenha
a aparência de um livro de caixa.
Além do UserForm e dos Controles Botão de Comando, Rótulo e Caixa de Texto, trabalharemos agora com o
Botão de opção e a Caixa de combinação. Desenvolva no VBA o formulário a seguir:
1º Código
Utilizado no UserForm
Dê um clique duplo no formulário para inseri-lo:
Excel
2º Código
Utilizado no botão “BtnGravar”
Evento Ao clicar
Para encontramos o “Total de Créditos” e o “Total de Débitos”, utilizaremos a função Somase, a qual soma as
células especificadas por um determinado critério.
Sintaxe:
=SOMASE(intervalo;critérios;intervalo_soma)
Utilização na planilha:
=SOMASE(Movimento;"E ou S";Valor)
Figura 30. ( E n t r a d a ) - ( S a í d a)
Excel
Cadastro de Funcionários
Desenvolveremos um formulário para o cadastro de funcionários de uma determinada empresa.
Primeiramente incluiremos na planilha os itens a serem cadastrados:
1º Código
Utilizado no UserForm (Evento Ao Inicializar)
Dê um clique duplo no formulário para inserí-lo:
1 Private Sub UserForm_Initialize()
2 Sheets("Exercício 6").Activate
2 End Sub
2º Código
Utilizado no botão “BtnGravar” (Evento Ao Clicar)
1 Private Sub BtnGravar_Click()
2 Sheets("Exercício 6").Activate
3 Range("A6").Select
4 While IsEmpty(ActiveCell) = False
5 ActiveCell.Offset(1, 0).Select
6 Wend
7 ActiveCell = Nome
8 ActiveCell.Offset(0, 1) = Sexo
9 ActiveCell.Offset(0, 2) = Cargo
10
11 MsgBox "Funcionário cadastrado com sucesso", vbInformation
12 End Sub
Excel
3º Código 4º Código
Utilizado no “BtnLimpar” (Evento Ao Clicar) Utilizado no “BtnFechar” (Evento Ao Clicar)
1 Private Sub BtnLimpar_Click() 1 Private Sub BtnFechar_Click()
2 Nome.SetFocus 2 Unload Me
3 Nome = "" 3 End Sub
4 Sexo = ""
5 Cargo = ""
7 End Sub
5º Código
Utilizado no campo “Sexo” (Evento Antes de Atualizar)
O código cria um critério de validação para a especificação do campo Sexo
Excel
Manutenção de Estoque
Desenvolveremos um formulário no VBA que possa (requisitado posteriormente na planilha através de um
botão) adicionar, localizar, alterar e excluir produtos cadastrados na planilha Cadastro de Produtos (planilha 1)
1º Código
Utilizado no UserForm (Evento Ao Inicializar)
Dê um clique duplo no formulário para inserí-lo:
Obs: Veja que a planilha ativada para a exibição do “UserForm” será o Exercício 1.
2º Código
Utilizado no botão “BtnLocalizar” (Evento Ao Clicar)
Obs: Me.Localiza faz referência a caixa de texto com a legenda “Localizar”.
1 Private Sub BtnLocalizar_Click()
2 On Error GoTo errei
3 Cells.Find(What:=Me.Localiza, After:=ActiveCell, LookIn:=xlFormulas, _
4 LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
5 MatchCase:=False, SearchFormat:=False).Activate
6 Produto = ActiveCell
7 Preço = Format(ActiveCell.Offset(0, 1).Value, "Currency")
8 Estoque = ActiveCell.Offset(0, 2).Value
9 Exit Sub
10 errei:
11 MsgBox "Inexistente"
12 Exit Sub
13 End Sub
Excel
3º Código
Utilizado no botão “BtnAdicionar” (Evento Ao Clicar)
CCur define o campo com o formato Moeda (Currency) enquanto que CInt representa valores
enumerados (Integer).
4º Código
Utilizado no botão “BtnExcluir” (Evento Ao Clicar)
O método EntireRow faz referência à(s) linha(s) indicada(s ) por um determinado range (objeto singular
ou uma coleção de objetos), associada a propriedade “Delete”, resulta na exclusão do cadastro localizado.
5º Código
Utilizado no botão “BtnAlterar” (Evento Ao Clicar)
Excel
Vendas À vista e À prazo
Desenvolveremos um sistema de vendas de automóveis. Primeiramente criaremos uma tabela com os dados
dos veículos, a qual servirá posteriormente de base para o nosso Cadastro de Vendas. Nomeie sua planilha
como “Exercício 7 - Base” .
Figura 37. Planilha que servirá de base de dados para o sistema de vendas.
Através da Opção Fórmulas - Definir Nome, selecione as colunas “Nome do Automóvel”, “Ano” e “Preço” da
planilha, nomeando a seleção como “ListaVeiculos”.
Figura 38.
Figura 39.
No campo de referência utilize as funções DESLOC e CONT.VALORES:
=DESLOC('Exercício 7 - Base'!$B$9;0;0;CONT.VALORES('Exercício 7 - Base'!$B$9:$B$304);3)
Excel
Informações sobre as funções utilizadas:
Função Desloc
Sintaxe
DESLOC(ref;lins;cols;altura;largura)
A função DESLOC retorna uma referência para um intervalo de células. A referência retornada pode ser uma
única célula ou um intervalo de células. Você pode especificar o número de linhas e de colunas a serem
retornadas
- Ref: a referência em que se deseja basear o deslocamento. Ref deve se referir a uma célula ou intervalo de células;
caso contrário, DESLOC retornará o valor de erro #VALOR!.
- Lins: o número de linhas para o deslocamento. Pode ser para cima ou para baixo. Lins pode ser positivo (que
significa abaixo da referência inicial) ou negativo (acima da referência inicial).
- Cols: é o número de colunas para o deslocamento, tendo como base a referência inicial ( Ref ). Cols pode ser
positivo (que significa à direita da referência inicial) ou negativo (à esquerda da referência inicial).
- Altura: a altura, em número de linhas, que se deseja para a referência fornecida. Altura deve ser um número
positivo.
- Largura: a largura, em número de colunas, que se deseja para a referência fornecida. Largura deve ser um número
positivo.
Função Cont.Valores
Sintaxe
CONT.VALORES(valor1;valor2;...)
A Função CONT.VALORES calcula o número de células não vazias e os valores na lista de argumentos.
Use CONT.VALORES para calcular o número de células com dados em um intervalo ou matriz
- Um valor é qualquer tipo de informação, incluindo valores de erro e texto vazio (""). Um valor não inclui células
vazias.
- Se um argumento for uma matriz ou referência, somente os valores dessa matriz ou referência serão usados.
- As células vazias e os valores de texto da matriz ou referência são ignorados.
- Valor1; valor2;... são argumentos de 1 a 255 que representam os valores que você deseja calcular
Figura 40.
Excel
No VBA desenvolva o Formulário a seguir:
TxtCliente
TxtVeiculos
TxtParcelas
TxtPreco
NumPar
BtnOk
BtnCancelar
Figura 39.
1º Código
Utilizado no UserForm (Evento Ao Inicializar)
Dê um clique duplo no formulário para inserí-lo:
O foco inicial vai para o campo “Cliente”
1 Private Sub UserForm_Initialize()
2 TxtCliente.SetFocus
3 End Sub
2º Código
Utilizado na barra de rolagem “NumPar”
(Evento Ao Alterar) Figura 40.
O procedimento do evento Change (Ao Alterar)
coordena os dados exibidos entre os controles. No item ColumnCount, da propriedade
de TxtVeiculos especifique o valor 2 para a
1 Private Sub NumPar_Change() quantidade de colunas, ocultando assim, a
2 TxtParcelas = NumPar.Value coluna de “Preços” na ListBox.
3 End Sub
3º Código
Utilizado no botão “BtnCancelar”
(Evento Ao Clicar)
1 Private Sub BtnCancelar_Click()
2 Unload Me
3 End Sub
4º Código
Utilizado no campo “TxtVeiculos” (Evento Ao Clicar)
1 Private Sub TxtVeiculos_Click()
2 TxtPreco = Format(TxtVeiculos.Column(2), "Currency")
3 End Sub
Excel
5º Código
Utilizado no botão “BtnOk” (Evento Ao Clicar)
Em muitos exemplos empregamos o método Offset para realizar deslocamentos em relação à célula selecionada antes
do deslocamento executado.
Exemplo da construção do código:
Objeto de referência.Offset (linhas, colunas)
Com a criação dos códigos é possível observar uma maior integração entre o formulário e as planilhas de
dados desenvolvidas. Por fim, crie um botão para requisitar o formulário de vendas:
Excel
Lista de Orçamento
Desenvolveremos uma lista de orçamento onde somente algumas células são usadas para digitação:
O código abaixo desenvolvido no ambiente do VBA, controla a entrada de valores nas células a4 a c4,
adicionando os dados valores colocando-os na primeira linha vazia da lista de orçamento:
1 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
2 Dim Linhas As Long
3 Dim Colunas As Integer
4 Dim Fim As Label
5
6 'Resultado da CheckBox para interrupção de entrada
7 'de valores e leitura da Lista
8 If Range("F1").Text <> "FALSO" Then GoTo Fim
9 If Target.Address <> "$A$4" And Target.Address <> "$B$4"
10 And Target.Address <> "$C$4" Then
11 'A instrução Select Case é uma instrução de tomada de decisão
12 Select Case Target.Column
13 Case 1 ' Coluna A
14 Range("B4").Select
15 Case 2 ' Coluna B
16 Range("C4").Select
17 Case 3 ' Coluna C
18 Range("A4").Select
19 If Range("$A$4").Text <> "" And Range("$B$4").Text <> "" And
20 Range("$C$4").Text <> "" Then
21 Linhas =
22 Application.WorksheetFunction.CountA(Sheets(9).Range("$A$7:$A$35000"))
23 For Colunas = 0 To 2
24 Range("A7").Offset(Linhas, Colunas).Value =
25 Range("A4").Offset(0, Colunas).Text
26 Next Colunas
27 Range("A4:C4").Value = ""
28 End If
29 Case Else
30 Range("A4").Select
31 End Select
32 End If
33 Fim:
34 End Sub
Microsoft Excel
Profissional com VBA
Gerente de Produção: Rosivaldo Pires Martins
Coordenador de Marketing: Raimundo Pires Martins
Autores: Aloísio Barros e Marcelo Meireles
Diagramação: Marcelo Meireles
Revisão Técnica: Nadir Pires Martins
Revisão Ortográfica: Darliane Aguiar
Capa: Aloísio Barros