Blog

Postado em em 23 de outubro de 2019

MsgBox VBA e InputBox para Interagir com o Usuário

Nessa publicação vou te explicar como funcionam as ferramentas MsgBox VBA e Inputbox! Reponsáveis por disparar alertas e interagir com o usuário!

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

Para baixar a planilha utilizada nessa aula clique aqui!

O que é uma MsgBox VBA?

Essas são ferramentas do VBA (do inglês Visual Basic for Application) que é linguagem de programação por trás do Excel, ou seja, além de tudo que já temos dentro do ambiente Excel é possível escrever códigos e utilizar diferentes ferramentas para incrementar ainda mais a utilização desse Software no dia a dia. O MsgBox VBA é uma caixa de mensagem que aparece no Excel como uma caixa informativa, como por exemplo quando temos um erro ou algo do gênero aparecem esse tipo de pop up para dar um aviso. Já o InputBox é uma caixa um pouco diferente, pois permite ao usuário inserir um dado dentro dela.

Quando utilizar a MsgBox VBA e o InputBox?

Vamos utilizar o MsgBox VBA quando for necessário mostrar uma mensagem ao usuário, seja ela qual for podendo essa mensagem conter um aviso, um número ou informações. Neste caso vamos utilizar o MsgBox para informar ao usuário uma condição de estoque de um determinado produto.

A função InputBox será utilizada para que o Excel nos mostre uma janela para inserir o valor do estoque atual, em seguida esse valor será atribuído a uma célula para que possamos novamente fazer a comparação entre o estoque atual e estoque mínimo.

Como utilizar essas ferramentas do VBA?

O primeiro passo que vamos fazer é criar uma espécie de botão para atribuirmos a macro (que é o código gerado em VBA) para facilitar a execução desse código, fazendo com que o usuário não tenha que acessar uma guia específica e escolher qual macro deseja executar.

Para a criação do botão vamos até a guia Inserir e vamos inserir o formato de um retângulo no ambiente Excel. (O usuário pode escolher qualquer uma das formas para a criação do botão).

Selecionando a forma de retângulo para a criação do botão

Selecionando a forma de retângulo para a criação do botão

Ao clicar na opção basta depois clicar e arrastar dentro de algum ponto dentro do Excel para criar a forma do tamanho desejado.

Retângulo criado

Retângulo criado

Feito isso a forma ficará selecionada e o usuário poderá ver que uma nova guia foi “criada”, que é a guia Formatar. Nesta guia podemos alterar a formatação deste “botão” para que fique mais apresentável.

Modificando os efeitos de forma do botão

Modificando os efeitos de forma do botão

Na parte de Efeitos de Forma vamos selecionar em Predefinição a segunda opção. Lembrando que o usuário poderá formatar da maneira que achar mais adequada. É possível também alterar a cor deste botão na opção Preenchimento da Forma. Feito isso teremos o seguinte resultado.

Botão com efeitos e posicionado ao lado da tabela

Botão com efeitos e posicionado ao lado da tabela

Temos a tabela onde faremos a comparação entre Estoque Atual e Estoque Mínimo e ao lado é possível observar o botão formatado. Agora para o próximo passo vamos atribuir uma macro a esse botão, para isso basta clicar com o botão direito do mouse em cima do botão e selecionar a opção Atribuir macro.

Selecionando a opção para atribuir a macro ao botão

Selecionando a opção para atribuir a macro ao botão

Feito isso o Excel irá abrir uma janela de atribuição de macros, como já temos o código nesse arquivo de Excel vamos apenas selecionar a macro mensagem e confirmar clicando em OK.

Selecionando a macro a ser atribuída

Selecionando a macro a ser atribuída

Feito isso a macro está atribuída ao botão, isso quer dizer que toda vez que clicarmos nesse botão de agora em diante esse código que foi associado será executado. Esse código vai fazer uma comparação entre a célula C3 e D3, então sempre que o estoque atual for maior do que o estoque mínimo teremos uma caixa de mensagem dizendo que o estoque está suficiente, caso contrário teremos uma mensagem dizendo que o estoque está insuficiente.

Vamos agora colocar dois valores distintos, um maior e um menor e vamos clicar no botão para verificar o resultado de cada um dos números comparados.

Testando a macro com um valor menor

Testando a macro com um valor menor

Testando a macro de MsgBox VBA com um valor maior

Testando a macro de MsgBox VBA com um valor maior

Após verificar que a macro está funcionando vamos analisar o código escrito para a execução dessa ação, para isso basta ir até a guia Exibir, selecionar a opção Macros e em seguida Exibir Macros.

Menu para acessar as macros criadas

Menu para acessar as macros criadas

Ao selecionar essa opção teremos a mesma janela que vimos para atribuir a macro ao botão, nesta parte a macro mensagem será selecionada e em seguida vamos selecionar a opção Editar.

Selecionando a macro com MsgBox VBA para editá-la

Selecionando a macro com MsgBox VBA para editá-la

Ao pressionar a opção Editar o ambiente VBA será aberto com o código escrito referente a essa macro mensagem que foi selecionada.

Abertura do ambiente com MsgBox VBA

Abertura do ambiente com MsgBox VBA

Como temos dois códigos no nosso programa os dois estão aparecendo, no entanto vamos analisar neste momento somente o primeiro deles.

Código da macro mensagem por MsgBox VBA

Código da macro mensagem por MsgBox VBA

Sempre que vamos começar um código no VBA escrevemos Sub seguido do nome da macro e no final temos o End Sub para indicar o término do código. Na primeira linha do código temos a função If que seria a função SE (tradução), ou seja, vamos fazer uma comparação. Essa comparação está sendo feita entre o Range C3 e o Range D3, que são exatamente as células C3 e D3, então estamos verificando se a célula C3 é maior do que a célula D3. Ao final da linha temos a escrita Then que significa então, isso quer dizer que se essa comparação for verdadeira iremos executar o que está escrito na linha abaixo.

Na linha abaixo que está dentro da função If temos a função MsgBox VBA que é exatamente a nossa caixa de mensagem que aparece dentro do ambiente Excel quando a macro é executada. É possível observar que dentro dos parênteses se encontra o texto que será exibido nessa caixa, lembrando que como é um texto deve ser colocado entre aspas duplas.

Abaixo dessa linha de código temos a função Else, que funciona como um complemento da função If, ou seja, vamos ter uma leitura dessa forma: “se C3 for maior do que D3 faça isso, se não faça aquilo”. Neste caso o Else significa o se não, ou seja, se aquela comparação não for verdadeira vamos para o segundo caso, que é se ela for falsa, que é exatamente o que se encontra na função Else.

Abaixo da função Else temos o código que será executado caso entre dentro dessa função (considerando a primeira comparação como falsa). Esse código é novamente utilizando a função MsgBox, no entanto com uma mensagem diferente da primeira, pois neste caso como a comparação foi falsa isso significa que o dado da célula C3 é menor do que o da célula D3, isso quer dizer que o estoque atual se encontra menor do que o estoque mínimo.

Por fim temos a função End If que serve para indicar ao código que a função If termina naquele ponto e não teremos mais nada dentro dela, isso quer dizer que o código continua após a finalização da função.

Agora vamos analisar o segundo caso que é com a utilização da função InputBox.

Tabela para utilização da macro estoque com MsgBox VBA

Tabela para utilização da macro estoque com MsgBox VBA

Neste caso vamos executar uma macro para que o Excel peça o valor a ser inserido na célula de estoque atual ao invés de escrevermos diretamente dentro dela. Neste caso vamos criar novamente um botão e atribuir a macro de estoque a esse botão, em seguida ao pressionar este botão teremos a caixa de inserção de dados que é o InputBox.

Janela da função InputBox com explicação do que deve ser preenchido

Janela da função InputBox com explicação do que deve ser preenchido

É possível verificar que temos um campo para inserir o dado da quantidade de estoque e ao pressionar OK esse valor será inserido na célula C3 e teremos a macro mensagem sendo executada automaticamente.

MsgBox VBA referente a comparação dos valores

MsgBox VBA referente a comparação dos valores

Isso quer dizer que ao inserir o valor já estamos executando a outra macro logo em seguida para fazer a comparação do estoque atual com o estoque mínimo. Vamos agora verificar a escrita do código para essa macro.

Código da macro estoque

Código da macro estoque

Assim como na outra macro temos Sub para iniciar a macro seguido do nome, e para finalizá-la temos o End Sub no final do código. Na primeira linha temos que a célula C3 irá receber o valor (esse é o significado do = na fórmula) do InputBox que tem a seguinte mensagem “Qual é o estoque atual?”, ou seja, além de podermos solicitar um valor, temos a opção de colocar uma mensagem para que o usuário entenda o que está sendo pedido. Na segunda linha do código temos uma “chamada” para a outra macro que foi criada anteriormente, que é a macro para fazer a comparação do estoque atual com o estoque mínimo, para isso utilizamos a função Call seguido do nome da macro que será executada.

Para acessar outros conteúdos de VBA da Hashtag, acesse: www.hashtagtreinamentos.com/blog

Você sabia que aqui na Hashtag temos um dos mais bem avaliados cursos de excel do Brasil? Clique aqui para saber mais!

Você também tem opções de cursos presenciais de Excel, Power BI e VBA no Rio de Janeiro!


Quer aprender tudo de Excel para se tornar o destaque de qualquer empresa?


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