Blog

Postado em em 8 de outubro de 2022

Msgbox no VBA – Como Criar Caixas de Diálogo no Excel

Você já deve ter ouvido falar em msgbox no VBA, mas você sabe como criar essas caixas de diálogo no Excel? Vem que eu te mostro!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Nessa aula você vai lidar com a caixa de mensagem no VBA!

Ela é uma caixa de diálogo, e você pode criar uma caixa de mensagem personalizada.

Para fazer isso, vamos usar as opções do msgbox no VBA para que o usuário possa escolher “sim” ou “não”, por exemplo. De acordo com a resposta, podemos fazer diferentes ações.

Bora lá aprender sobre as caixas de diálogo no Excel?

No início da aula de hoje, nós temos uma tabela com datas e vendas registradas por uma empresa fictícia, que tomaremos como objeto de estudo.

Além disso, temos a quantidade monetária de vendas feitas em cada data, e os respectivos vendedores responsáveis pelas vendas. Acompanhe:

O objetivo da aula de hoje é calcular, com automação de repetição (e eficiência), se um dia merece receber bônus referente a vendas ou não.

O que vai orientar o bônus é: se o dia tiver vendas superiores a 5000 reais, terá 10% de bônus em relação ao total vendido (para aquele dia).

Para isso, desenvolvemos o código abaixo:

Sub bonificacao()

For linha = 2 To 17

    If Cells(linha, 3).Value > 5000 Then

        resposta = MsgBox("A bonificação do vendedor " & _
       Cells(linha, 2).Value & " foi de R$" & Cells(linha, 3).Value * 0.1 & _
       ". Você quer preencher essa informação na planilha?", vbYesNo, "Pergunta de Bonificação")

        If resposta = 6 Then
          Cells(linha, 4).Value = Cells(linha, 3).Value * 0.1
       End If

    End If

Next 

End Sub

Explicação do código acima:

Como mostramos num dos posts anteriormente com um exemplo parecido, vamos iniciar uma estrutura de repetição do tipo For, que vai realizar ações repetitivas.

Nesse caso, ela vai realizar ações a partir da variável auxiliar “linha”, que vai do valor 2 até o valor 17.

A cada “volta” da nossa estrutura de repetição, o valor da variável auxiliar “linha” é acrescentado de 1 unidade. Assim configuramos a estrutura para iniciar e acabar em momentos desejados.

As ações a serem repetidas são:

  • Comparar se o valor da 3ª coluna (coluna C), a cada linha representada pela variável “linha” é maior do que 5000. Caso seja:
    • Armazenar na variável “resposta” o que vier de resposta do usuário para a caixa de mensagens no VBA (MsgBox VBA), que vai mostrar o texto, que contém:
      • o nome do vendedor, que está na 2ª coluna (coluna B) naquela “linha”
      • a bonificação que está na 3ª coluna (coluna B), naquela “linha”
    • A caixa de mesagem no VBA vai dispor de dois botões: “sim” e “não”. A resposta para o botão selecionado “sim” é entendida como o número 6; já para a resposta “não” é entendida como o número 7, por padrão do VBA.
    • Uma pergunta vai ser disposta para o usuário perguntando se ele quer preencher a informação de bonificação na planilha
  • Caso a resposta do usuário seja pela opção “sim” (se traduz em armazenar na variável “resposta” o valor 6):
    • A célula da 4ª coluna (coluna D) a cada “linha” vai receber o valor que está na mesma “linha”, mas na 3ª coluna (coluna C), multiplicado por 10% (0,10)
  • Seguirá fazendo as mesmas comparações e ações para todas as linhas, até a linha 17, quando a estrutura For acabará, e o código seguirá
  • Se encerra o código

Observe as duas primeiras caixas de mensagem geradas pelo nosso código e o efeito do clique na opção “Sim” em uma delas:

Msgbox no VBA

Fazendo todas as ações explicadas acima, e clicando “Sim” para todas as caixas de mensagem, teremos o seguinte resultado:

Conclusão – Msgbox no VBA

Nessa aula você viu diretamente como criar caixas de diálogo no VBA, assim como as opções da caixa de mensagem, para interagir de forma personalizada com o usuário!

Você lidou também com a estrutura de repetição For, muito utilizada para tornar seus códigos mais eficientes no Excel.

Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de Power BI!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer sair do zero em Python e virar uma referência na sua empresa? Matricule-se agora mesmo no Python Impressionador!