Blog

Postado em em 9 de abril de 2022

Function no VBA – Como Criar e Facilitar o seu Trabalho?

Você sabe criar um function no VBA? Hoje eu vou te mostrar como fazer isso para facilitar seus trabalhos dentro do Excel!

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! Hoje vamos te mostrar como criar uma função no VBA para facilitar seus trabalhos dentro do Excel!

Isso mesmo, vou te ensinar como criar uma função no VBA que você pode utilizar dentro do VBA como todas as outras funções que ele já tem.

Para a criação de função no VBA nós vamos ter que entrar no ambiente VBA e criar nosso código, para esse exemplo vai ser algo simples.

A ideia é criar uma macro que faz o cálculo do bônus de uma determinada venda de acordo com uma tabela.

Para isso vamos utilizar a estrutura de repetição for e a função if (estrutura condicional) para percorrer e verificar as informações dessa nossa tabela de bônus.

Com isso vamos saber em qual faixa está o valor desejado e vamos poder retornar o bônus de forma correta sem ter que utilizar várias funções SE ou utilizar a função SES no Excel.

E aí, bora aprender a criar uma função personalizada no Excel (ou uma função personalizada no VBA) para facilitar seus trabalhos no Excel e aumentar sua produtividade?

Arquivo de aula

No arquivo de aula temos uma tabela com a lista de vendedores de uma empresa, e suas determinadas vendas em um período.

Além disso, temos uma tabela auxiliar de bônus mínimo para o vendedor. Dependendo do valor vendido, ele ganha a porcentagem devida em cima das suas vendas, de bônus.

Observe abaixo esse cenário mostrado.

0

Exemplo: o Alon vai ganhar 40% em cima das suas vendas (R$ 97.500), porque vendeu pelo até  R$ 100.000, o que vai lhe render R$ 39.000.

Inserindo um Módulo no VBA

Para criar um código dentro de um módulo, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Como não temos nenhum módulo destinado ao tema da aula de hoje, e por questão de organização, vamos criar um módulo à parte.

Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.

1

Colocaremos, então, a seguinte function dentro dele:

Function calcularBonus2(valorVenda As Double, intervaloBonus As Range) As Double

nLinhas = intervaloBonus.Rows.Count

For i = 1 To nLinhas

    If valorVenda <= intervaloBonus(i, 1) Then

        percentualBonus = intervaloBonus(i, 2)
        Exit For

    End If

Next

calcularBonus2 = percentualBonus * valorVenda

End Function

Explicação do código:

  • Utilizar uma Function declarada como calcularBonus2, cujos argumentos serão o valorVenda, como o valor de venda (um número do tipo Double) e intervaloBonus como um intervalo de células (tipo Range)
  • A variável nLinhas vai receber a contagem de linhas contida no intervaloBonus, que será um intervalo de células (conterá diversas linhas e/ou colunas)
  • Utilizar uma estrutura de repetição do tipo For que vai considerar da linha 1 até a linha representada por nLinhas fazer as seguintes ações:
    • Comparar, através de uma função If:
      • Se o valorVenda passado para a função for menor ou igual ao valor da linha representada pela variável “i”, da 1ª coluna da matriz intervaloBonus, a variável percentualBonus vai assumir o valor da 2ª coluna da matriz intervaloBonus da mesma linha
      • Analisando linha a linha, quando encontrar um valor menor ou igual e achar o percentualBonus respectivo, vamos usar a instrução de saída para abortar a estrutura de repetição, porque já obtemos nosso resultado
    • A expressão final de fato vai ser o cálculo realizado pela nossa Function: ela (calcularBonus2) vai receber o resultado do percentualBonus multiplicado pelo valorVenda. Essa expressão vai, de fato, ser retornada como resposta no Excel, ou dentro do VBA, ao invocarmos essa Function.
    • Se encerra o código

Exemplo de uso da Function no Excel

Podemos, agora, invocar essa Function dentro do Excel, como uma função, mas agora de forma personalizada.

Observe abaixo agora a utilização da Function:

Criação de função no VBA
Criação de função no VBA

Repare que o valor a ser analisado é o valor de vendas de 97.500, na tabela de bônus, que vai de E2 até F11 da nossa planilha.

Abaixo está o resultado do uso da nossa Function, no Excel:

3

Fazendo a multiplicação de 97.500 por 40%, chegamos ao bônus de R$ 39.000 para o Alon, que teve vendas de até R$ 100.000. Aprenda Visual Basic do básico ao avançado com o curso completo de VBA da Hashtag.

Conclusão da Function no VBA

Hoje eu te mostrei o que é uma function no VBA e qual a sua utilidade. Você deve ter notado que uma function nada mais é do que uma função que fica disponível no Excel.

Assim como qualquer outra função que você já utiliza, como: SOMA, MÉDIA, SE, PROCV… Todas elas são funções e você pode até tentar criá-las usando o VBA.

Nessa aula você lidou com:

Valeu, Impressionadores! Fiquem ligados no nosso canal do Youtube para mais conteúdo de VBA toda semana!

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 no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador