Excel Avançado Com VBA
Excel Avançado Com VBA
Excel Avançado Com VBA
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...