Académique Documents
Professionnel Documents
Culture Documents
Este caderno extra para os alunos que fizeram Excel visa criar perspectiva para que façam curso de VBA
Se o VBA foi feito para o Office, podemos entender que, é possível utilizar o VBA em todos os programas que fazem
parte do pacote, tais como: Excel, Access, Word, PowerPoint, Outlook, Project, Sharepoint, Publisher, OneNote e
Visio.
Aqui teremos apenas algumas noções sobre VBA, somente para que o aluno verifique novas possibilidades junto ao
Excel Avançado. Já que linguagem de programação precisa-se fazer curso específico.
A linguagem de programação Visual Basic Applications, que é da Microsoft, tem esse recurso dentro do seu pacote
office. (MS Word/ MS PPoint/ MS Acess/ MS Excel etc...).
1. Automatizar tarefas
2. Criar Fórmulas
3. Desenvolver Sistemas
Para podermos acessar os recursos e ferramentas de gravação de macros, temos que ativar a guia
desenvolvedor.
Clicar em
1º 2º
Depois clicar em
Passo2: Clicar em Personalizar Faixa de Opções, marcar a opção Desenvolvedor e depois dê OK. Veja imagem:
Passo3: Na sua tela do Excel já mostrará a guia que pedimos para ativar.
Antes de entrar em introdução a VBA vamos rever Macro, que não deixa de ser uma automação de comandos
que precisaremos executar.
Página |4
EXERCÍCIO 1 (CRIANDO UMA MACRO)
Passo1: Abra o aplicativo MS Excel e verifique se está ativado a guia Desenvolvedor, caso não esteja verifique
na página anterior como fazê-lo.
Passo3: Vamos criar um botão que quando clicarmos nele lançará o cadastro na linha correta, clique na guia
inserir/ Formas/ Retângulo Arredondado. Veja imagem:
Passo4: Quando clicar em retângulo, posicione o mouse no endereço G1, clique segure e arraste o mouse para
definir o tamanho. Veja imagem:
OBSERVAÇÃO: Lembre-se quando tiver criando formas, use a guia Formatar para dar uma melhor aparência a
seus botões.
Passo5: Clique na guia Desenvolvedor e deixe a ferramenta Usar Ferramentas Relativas Desmarcada. Veja:
Passo6: Digite na célula E2: Arthus em F2: 16, depois dê Enter. Como na imagem:
OBSERVAÇÃO: Ao darmos OK tudo que fizermos o Excel estará gravando e transformará em código,
portanto cuidado para não errar nenhum dos próximos passos.
Passo9: Selecione de E2 a F2
Passo10: Pressione as teclas CTRL + C (para fazer uma cópia deste conteúdo)
Passo11: Clique em A1
Passo13: Pressione as teclas CRTL + Seta para baixo (para ir para última linha)
Passo14: Solte a tecla CTRL, e agora pressione uma vez a seta para baixo (para ir para a linha vazia)
Passo20: Agora precisamos para a gravação da macro, clique na ferramenta parar gravação. Veja imagem:
Passo21: Agora vamos fazer o botão Cadastrar, funcionar com essa macro, clique com botão direito sobre o
botão e depois em atribuir macro. Veja imagem:
J P
A R
Macro fica armazenada dentro de Módulos, para
mostrar clique no sinal de + e depois dois cliques
N O
rápidos em Módulo1
E J
L E
A T
S
Página |7
Observação: No lado direito mostrará todo os comandos representados em modo de códigos que foram
gravados pela macro. Veja imagem:
Todo conteúdo
executado por nossa
Macro
Regras:
Toda Macro começa com a palavra Sub e termina com a palavra End Sub
Em seguida os comentários que fizemos na caixa de diálogo:
Em seguida todas as ações que mandamos executar quando estava gravando a Macro:
COMANDOS SIGNIFICADOS
Range("E2:F2").Select Range (célula) – Então selecionar de E2 a F2
Selection.Copy Copiar a seleção
Range("A1").Select Selecionar A1
Selection.End(xlDown).Select Quando usamos a ferramenta: Usar ferramentas
relativas – Em seguida usamos CTRL + Seta para baixo
ActiveCell.Offset(1, 0).Range("A1").Select Depois da célula ativa ele vai se deslocar 1 linha para
baixo – Quando usamos somente: Seta para baixo
ActiveSheet.Paste Quando utilizamos as teclas CTRL + V para Colar o
conteúdo que foi copiado
Range("E2:F2").Select Selecionar as células de E2 a F2
Application.CutCopyMode = False Para retirar os pontilhados piscando na célula
Selection.ClearContents Quando pressionamos a tecla DELETE para apagar o
conteúdo
Range("E2").Select Quando selecionamos a tecla E2
VENDO NA PRÁTICA O FUNCIONAMENTO, USAREMOS A TECLA F8 PARA EXECUTAR PASSO A PASSO O QUE
ESTÁ NESTA TABELA.
Passo1: antes vamos ter que ir para janela no nosso cadastro, na barra de tarefas do Windows clique no nosso
cadastro. Veja imagem:
Passo4: No canto direito da janela clique em restaurar, para que fique reduzida e possamos sobrepor a janela
do cadastro. Precisaremos ver as duas janelas ao mesmo tempo. Veja imagem:
Janela do
nosso cadastro
Janela da nossa
Macro
Passo6: Vamos apenas utilizar a tecla F8, que veremos os comandos entrarem em ação. Observe:
Observação: Então note com esse exercício de Macro, que o Excel grava todos os comandos e os transforma
em códigos de execução em VBA.
O PRÓXIMO EXERCÍCIO ENTRARÁ NO MÉRITO DA CONSTRUÇÃO EM SÍ DOS CÓDIGOS, APENAS PARA CRIAR
UMA EXPECTATIVA EM FAZER ESTE CURSO.
Passo1: Abra seu MS Excel, dê dois cliques rápidos sobre Plan1 e mude esse nome para cadastro. Veja:
Antes Depois
Objetivo: Criar um formulário, que ao digitarmos o código do produto ele me retorne todos os outros campos
como: Produto/ Unidade/ Quantidade/ Valor Unit./ Valor Total. E havendo necessidade poder-mos fazer
alterações neste campos.
Passo3: Após digitar nossa planilha de exemplo, na guia Desenvolvedor, clique na ferramenta Visual Basic
ou se quiser ativar essa janela pelo teclado, você pode combinar as teclas: ALT + F11.
Passo4: Vamos começar criando nosso formulário, portanto a partir da tela do Visual Basic, clique na guia
Inserir/ UserForm (Usar Formulário). Veja:
Passo5: Uma caixa de formulário já estará mostrando em sua tela, aumente um pouco a largura e altura, para
que possamos desenvolver o conteúdo. Veja imagem:
Passo7: Vamos abrir outra que vai retornar o produto referente ao código. Use a mesma ferramenta. Veja
imagem:
Passo8: Precisamos dar nome as estas caixas, clique na primeira caixa que criamos, para selecionar, no lado
esquerdo na opção (Name), o que está escrito à frente apague e digite txt_codigo. Veja imagem:
1º 2º 3º
Clicar na caixa do código Trocar esse nome por este nome
Passo9: Repita o processo para nossa segunda caixa que vai ter o nome txt_produto
Observação: É muito importante que as caixas que criarmos no formulário, darmos nomes para elas. Se usar
nome com mais de uma palavra não dê espaços, use anderline ( _ ).
Passo10: Vamos programar a primeira caixa de texto que é para quando digitarmos o código. Dê 2 cliques
rápido em cima da caixa, a tela mudará para criamos a codificação, faça a mudança conforme imagem:
1º
Aqui vamos mudar do modo
Change para o modo AfterUpdate
2º
Aqui montaremos o código
P á g i n a | 11
Passo11: Vamos digitar os códigos conforme mostra abaixo. Digite:
Dim pesquisa
Dim mensagem
On Error GoTo Erro Linha de tratamento de erro, caso encontre algum erro
Passo12: Vamos verificar se realmente está funcionando nossa caixa. Clique no símbolo Executar UserForm.
Veja imagem:
Passo13: Mostrará a planilha de nosso cadastro feito e mais a caixa de formulário que estamos construindo,
procure puxa a caixa para que fique visível todo cadastro e a caixa. Veja imagem:
P á g i n a | 12
Passo16: Agora vamos digitar um código que não temos: 1070 e dê Enter, irá mostrar nossa caixa de erro. Veja
imagem:
Passo17: Vamos voltar no nosso formulário VBA, vamos criar mais 4 caixas de texto para: Unidade/
Quantidade/ Valor Unitário/ Valor Total. Veja imagem:
Passo18: Precisamos criar as outras pesquisas para os campos: Volte em seu VBA (ALT + F11)
Passo19: Dê 2 cliques rápidos na caixa de texto Código, para retornar na nossa tela de códigos criados
P á g i n a | 13
Pass20: Acrescente mais 4 pesquisas, conforme mostra imagem:
Passo21: No campo de cima pesquisa, só precisamos copiar e colar para estruturar as 4 novas pesquisas que
solicitamos. Veja imagem:
Passo24: Repita o processo de colar na frente dos campos: pesquisa2, pesquisa3 e pesquisa4. Veja imagem:
Passo25: Agora só precisamos trocar os valores correspondente as colunas que queremos a pesquisa. Veja
imagem:
Passo26: Vamos mudar os nomes das novas caixas de testos que pedimos. Dê 2 cliques rápidos no lado
esquerdo na área de projetos em UseForm1. Veja imagem:
Passo27: em nosso formulário do lado direito, selecione a segunda caixa de texto. Veja:
Passo29: Repita o processo de selecionar a próximas caixas, que deverá ficar com estes nomes:
Passo30: Dê dois cliques rápidos na caixa do nosso código para voltar a nossa programação. Posicione o cursor
depois da linha onde está: txt_produto = pesquisa, dê enter, depois digite: txt_unidade = pesquisa1. Veja
imagem:
Passo31: Agora vamos fazer o teste para verificar se realmente está achando todos os campos através da
digitação de nosso código. Clique na ferramenta Executar UseForm1: Veja imagem:
Resultados obtidos
P á g i n a | 15
CRIANDO RÓTULOS PARA NOSSAS CAIXAS (CONTINUAÇÃO)
Passo33: Para que fique mais fácil entender os conteúdos das caixas vamos criar rótulos. Fecha a caixa da
nossa pesquisa, pressione as teclas ALT + F11
Passo34: Voltará para tela do VBA com nosso formulário a vista. No lado esquerdo na caixa de ferramentas
clique em Rótulo. Veja imagem:
Traga o mouse aqui, posicione, clique
segure e arraste. Ficará assim:
Clique na ferramenta
Rótulo
Passo35: Para tirar esse nome do rótulo Label1, deixe selecionado e do lado esquerdo na opção (Caption), à
frente digite: Código. Veja imagem:
Observação: Ao modificarmos este rótulo observe que no formulário já foi alterado. Veja:
Passo36: Repita o mesmo processo para fazer os demais rótulos, seu formulário deverá ficar assim:
Passo1: Precisamos criar um botão de controle, que ao clicarmos abrirá este formulário. Na guia
Desenvolvedor, clique na ferramenta inserir. Veja imagem:
P á g i n a | 16
2º
1º Clicar inserir e depois na
ferramenta Botão
(controle de Formulário)
Passo2: Ao lado da sua planilha clique segura e arraste para dar o tamanho ao botão.
Passo3: Na caixa de diálogo seguinte, coloque no nome botão_formulario, depois clique em novo. Veja
imagem:
Passo4: Vamos verificar se funciona, volte na tela da sua planilha, clicando sobre o ícone na barra de tarefas do
Windows. Veja:
Passo5: Clique sobre o botão que criamos, terá que abrir o nosso formulário.
P á g i n a | 17
RENOMEANDO O RÓTULO DO NOSSO BOTÃO
Passo1: clique com botão direto do mouse sobre o botão que criamos, depois em Editar texto. Veja:
Passo1: Como dentro deste documento existe Macro, teremos que salvar habilitando para a mesma, se não a
Macro não funcionará. Clique em Arquivo/ Salvar Como
NESTA SEGUNDA PARTE USANDO A MESMA PLANILHA PARA TREINAMENTO, VAMOS VER COMO DEPOIS QUE
ACHARMOS O PRODUTO ATRAVÉS DO CÓDIGO DIGITADO, PODEREMOS FAZER ALTERAÇÕES NA PLANILHA
USANDO O MESMO FORMULÁRIO.
Passo1: Reabra seu arquivo do exercício anterior, que salvamos com nome de Treinamento em VBA
Passo3: Vamos ativar nosso formulário UserForm1, dê dois cliques rápidos nesta função do lado esquerdo.
Passo6: Vamos modificar também seu (Name), clique nesta opção do lado esquerdo e coloque btn_atualiza.
Veja imagem:
Antes Depois
Passo7: Agora vamos entrar no código deste botão. Dê 2 cliques rápidos em cima do botão Atualizar, a tela
mostrará o código. Veja imagem:
Private Sub btn_atualiza_Click() Linhas que usamos para orientação dos códigos
'Criando nossa variáveis
Variáveis que utilizaremos
Dim codigo As Integer
linha = 2
valor = txt_valor_unitario
P á g i n a | 19
MsgBox ("Dados Alterados com sucesso!!!") Caixa de mensagem que queremos que apareça,
quando fizer atualização
linha = linha + 1 Continuar executando 1 linha a mais, até encontrar uma vazia
Loop
Passo9: Após finalizar os códigos, para testar clique na ferramenra Executar Sub/UserForm
Clique em Atualizar
Passo10: Altere o Valor unitário para 0,80 e depois clique em Atualizar. Verifique que foi alterado conforme
programado.
Quantidade e Valor
unitário alterados
Planilha atualizada.
VAI FACILITAR FAZER UMA CONSULTA COM OS FILTROS DESEJADOS, CRIANDO CRITÉRIOS E AINDA
POSSIBILITANDO CRIAÇÃO DE RELATÓRIOS.
Iremos fazer isso aproveitando nosso arquivo anterior (VBA), vamos abrir este arquivo: Treinamento em VBA
Passo1: Após abrir nosso arquivo, vamos acrescentar mais algumas linhas conforme mostra imagem:
Passo2: Após cadastrar o que falta, lance a quantidade e o Valor unitário, depois arraste a fórmula que já está
pronta na coluna Valor Total.
Passo3: Ao lado de nossa planilha, vamos precisar digitar uma planilha para fazer a consulta com os critérios e
uma para trazer o resultado. Digite o conteúdo seguinte:
P á g i n a | 22
Passo4: Vamos agora partir para criar nosso filtro de pesquisa, clique na guia Dados. Veja:
Guia Dados
Passo5: Vamos criar uma Macro para automatiza essa função. Clique na guia Desenvolvedor, depois na
ferramenta gravar Macro.
Observação: Lembre-se que quando for criar macro não dê espaços em palavras compostas. Cuidado para não
errar nenhuma instrução.
Passo7: Vote na guia Dados, clique na ferramenta Avançado. Na caixa de diálogo que mostra, clique na seta
vermelha como mostra imagem:
Passo8: Selecione de A1 até F3, como sendo muito conteúdo pressione as teclas CTRL + SHIFT + Seta para
baixo, ele marcará até nossa última linha.
Passo10: em intervalos de critérios, apague se tiver alguma coisa, clique na seta vermelha e selecione o
cabeçalho de nossa pesquisa e a linha de baixo. Veja imagem:
Passo12: Selecione o que está em pontilhado, que automaticamente nossa terceira caixa estrá com as
referências.
Passo13: Na caixa filtro Avançado, clique na opção copiar para, então selecione somente os títulos da tabela
RESULTADO DA CONSULTA, dê OK para confirmar. Veja imagem:
Confirmar em OK 4º
Passo14: Vamos para nossa Macro, na barra de status do Excel, clique no botão encerrar macro.
Clicar em Inserir
Passo17: Supondo que estou fazendo um relatório sobre meu estoque e quero saber quais tipos de cadernos
tem e a quantidade. Na tabela de Consulta clique no campo abaixo onde está Produto e digite: Caderno, em
seguida clique no botão: Clique para executar a consulta. Veja imagem:
FIM DO EXERCÍCIO...