Capítulo 18: VBA I (Variáveis e IF)
🎯 Objetivo da Aula
Agora que você já usou o gravador, é hora de olhar “por baixo do capô”. Nesta aula, você terá seu primeiro contato real com a escrita de código.
O objetivo é aprender a declarar uma Variável no código e usar a estrutura If…Then para que o Excel mostre uma mensagem de alerta na tela caso um valor ultrapasse o limite.
🏢 O Cenário Prático (Seu Desafio)
Situção: O gerente da FastLog quer um sistema que avise na hora se o valor de um frete for muito alto (acima de R$ 10.000,00). Ele quer que apareça uma “caixinha de mensagem” (Pop-up) no Windows avisando o perigo. Missão: Você deve escrever um código simples em VBA que leia o valor de uma célula e, se for maior que 10.000, dispare um alerta sonoro e visual na tela.
🧠 Fundamentos: Teoria do Excel (Linguagem VBA)
Para programar no Excel, usamos o VBE (Visual Basic Editor).
- Sub: É onde o código começa (abreviação de Sub-rotina).
- Dim: Comando usado para “avisar” ao Excel que vamos criar uma Variável.
- MsgBox: Comando que faz aparecer uma caixa de mensagem na tela.
A sintaxe do IF no código:
📖 Exemplo Guiado: Meu Primeiro Pop-up
Vamos escrever a linha de código mais simples do mundo: mandar o Excel dizer “Olá”.
Passo a Passo
- Aperte Alt + F11 para abrir o editor do Excel (VBE).
- No menu superior, vá em Inserir > Módulo.
- Na tela branca, digite exatamente isso:
- Aperte a tecla F5 no seu teclado (ou clique no botão de “Play” verde no topo).
- Volte para o Excel e veja a mágica.
✅ Resultado Esperado (Exemplo)
Aparecerá uma caixinha cinza oficial do Windows na sua tela dizendo “Olá! Eu sou o seu primeiro código!”.
🔑 Gabarito de Fórmulas
(Lógica do Código)
- MsgBox: É o comando para “Message Box” (Caixa de Mensagem).
🛠️ Prática Obrigatória 1: Criando um Alerta de Auditoria
Vamos usar a lógica do IF para o Excel nos avisar se um frete for muito caro.
Passo 1: A Planilha
Na Planilha 1, digite em A1: 15000.
Passo 2: O Código
- Abra o editor (Alt + F11). Vá no final do seu Módulo e dê uns “Enters”.
- Digite o código abaixo:
Passo 3: O Teste
Volte ao Excel. Mude o valor de A1 para 5000. Vá em Desenvolvedor > Macros, escolha VerificarPreco e Execute.
✅ Resultado Esperado (Prática 1)
O Excel deve analisar o que está na célula A1 e mostrar um alerta de “Erro” (vermelho) se for maior que 10.000, ou um alerta de “Informação” (azul) se for menor.
🔑 Gabarito de Fórmulas
| Código | Tradução |
|---|---|
| Dim … As Double | Crie um espaço na memória para um número. |
| Range(“A1”).Value | Pegue o valor que está lá na célula A1. |
| vbCritical | Mostre o ícone de X vermelho e faça o som de erro do Windows. |
🛠️ Prática Obrigatória 2: Formulário de Confirmação
Antes de apagar um banco de dados, é bom perguntar se o usuário tem certeza.
Passo 1: O Código
Ainda no Módulo 1 (Alt + F11), crie uma nova Sub:
Passo 2: O Teste
Digite qualquer coisa entre A1 e B10. Vá em Macros e execute Perguntar.
✅ Resultado Esperado (Prática 2)
O Excel vai te fazer uma pergunta. Se você clicar em “Não”, nada acontece. Se você clicar em “Sim”, ele apaga as células. Isso é proteção de sistema profissional.
🔑 Gabarito de Fórmulas
| Código | Tradução |
|---|---|
| vbYesNo | Coloca dois botões na caixinha: “Sim” e “Não”. |
| .ClearContents | Comando para apagar o texto das células selecionadas. |
📤 Instruções de Entrega (Microsoft Teams)
Após finalizar as duas práticas obrigatórias:
- Salve o arquivo como .XLSM (Habilitado para Macro).
- Nome:
Atividade_18_SeuNome_SeuSobrenome.xlsm - No Microsoft Teams, envie o arquivo na tarefa “Capítulo 18 - Lógica com VBA I”.
- Clique em Entregar.
💡 Checkpoint de Lógica
Você acaba de cruzar a linha entre “usuário de software” e “desenvolvedor de software”. O que você escreveu é um Algoritmo. Você definiu uma entrada de dados (valorFrete), um processamento (If) e uma saída de dados (MsgBox). Quase todos os programas do mundo (do WhatsApp ao sistema do banco) funcionam seguindo essa mesma estrutura.
🔥 Desafio de Fixação (Opcional): Alerta Personalizado
Tente alterar o código da sua Macro VerificarPreco para que a mensagem de erro diga o nome do motorista envolvido.
- Desafio: Na planilha, digite “Carlos” na célula B1. No código, crie uma nova variável
Dim nomeMotorista As String. - Diga que
nomeMotorista = Range("B1").Value. - Junte o texto no MsgBox usando o símbolo
&:MsgBox "ALERTA para o motorista: " & nomeMotorista
✅ Resultado Esperado (Desafio)
O Excel juntará o texto estático com a variável que ele leu da planilha, criando um aviso 100% personalizado.