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:

1
2
3
If Valor > 10000 Then
    MsgBox "Alerta! Valor muito alto!"
End If

📖 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

  1. Aperte Alt + F11 para abrir o editor do Excel (VBE).
  2. No menu superior, vá em Inserir > Módulo.
  3. Na tela branca, digite exatamente isso:
1
2
3
Sub DizerOla()
    MsgBox "Olá! Eu sou o seu primeiro código!"
End Sub
  1. Aperte a tecla F5 no seu teclado (ou clique no botão de “Play” verde no topo).
  2. 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

  1. Abra o editor (Alt + F11). Vá no final do seu Módulo e dê uns “Enters”.
  2. Digite o código abaixo:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Sub VerificarPreco()
    ' Criando uma variável para guardar o valor
    Dim valorFrete As Double
    
    ' Pegando o valor da célula A1
    valorFrete = Range("A1").Value
    
    ' Lógica IF
    If valorFrete > 10000 Then
        MsgBox "ALERTA: Valor muito alto!", vbCritical
    Else
        MsgBox "Valor dentro do limite.", vbInformation
    End If
End Sub

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ódigoTradução
Dim … As DoubleCrie um espaço na memória para um número.
Range(“A1”).ValuePegue o valor que está lá na célula A1.
vbCriticalMostre 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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Sub Perguntar()
    Dim resposta As Integer
    
    ' O MsgBox agora faz uma pergunta com botões Sim e Não
    resposta = MsgBox("Tem certeza que deseja apagar tudo?", vbYesNo + vbQuestion)
    
    ' Se o usuário clicou em SIM (vbYes)
    If resposta = vbYes Then
        Range("A1:B10").ClearContents
        MsgBox "Dados apagados!"
    End If
End 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ódigoTradução
vbYesNoColoca dois botões na caixinha: “Sim” e “Não”.
.ClearContentsComando para apagar o texto das células selecionadas.

📤 Instruções de Entrega (Microsoft Teams)

Após finalizar as duas práticas obrigatórias:

  1. Salve o arquivo como .XLSM (Habilitado para Macro).
  2. Nome: Atividade_18_SeuNome_SeuSobrenome.xlsm
  3. No Microsoft Teams, envie o arquivo na tarefa “Capítulo 18 - Lógica com VBA I”.
  4. 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.

  1. Desafio: Na planilha, digite “Carlos” na célula B1. No código, crie uma nova variável Dim nomeMotorista As String.
  2. Diga que nomeMotorista = Range("B1").Value.
  3. 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.