Você já ouviu falar em WORKSHEETFUNCTION no VBA? Essa é a forma de utilizar as funções do Excel dentro do VBA e aqui vou te explicar sobre ela!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Clique aqui para baixar a planilha utilizada nessa publicação!
Worksheetfunction é um objeto do VBA que permite que fórmulas do Excel sejam utilizadas em nosso código.
Esta função é útil quando precisamos realizar, no VBA, operações trazidas através de fórmulas do Excel. A Worksheetfunction tem ainda a vantagem de que o valor não fica sempre sendo recalculado, como nas fórmulas do Excel, sendo o cálculo feito apenas quando a macro é executada e deixando, assim, a planilha mais leve.
Em nosso exemplo, vamos utilizar a Worksheetfunction para fazermos um somase no VBA. Ou seja, vamos somar valores conforme uma condição. Neste caso, temos uma planilha de vendas e vamos fazer um somase que faça a soma de todas as vendas de vendedoras do sexo feminino.
Base de dados
Para fazermos esta soma, vamos abrir o VBA (alt + F11 ou alt +fn+F11, caso não funcione). No VBA, vamos inserir o seguinte código:
Sub somase()
Range(“F1”) = WorksheetFunction.SumIf(Range(“C:C”), “F”, Range(“B:B”))
End Sub
Onde:
Range(“F1”) seleciona a célula F1 da planilha, que é onde o resultado da expressão será exibido;
WorksheetFunction. é a fórmula que traz as funções do Excel para o VBA. Note que ao digitarmos WorksheetFunction. no VBA, será exibida uma lista de funções. Estas funções são as fórmulas do Excel em inglês, que podem ser trazidas para o VBA.
Worksheetfunction VBA
SumIf é a fórmula somase em inglês, que é assim trazida para o VBA através da Worksheetfunction. Na fórmula Sumif temos os seguintes argumentos:
Sumif VBA
Onde o primeiro argumento é um Range, ou seja, uma célula ou intervalo de células.
A fórmula somase no Excel é composta pelos seguintes argumentos:
Somase Excel
Onde intervalo é o intervalo de dados no qual a condição será aplicada, critérios é a condição a ser aplicada e intervalo soma é o intervalo de dados que serão somados caso o critério seja atendido. No nosso exemplo o intervalo é a coluna C, o critério é “F” (sexo feminino) e o intervalo de soma é a coluna de vendas (coluna B). Então o somase no Excel para realizar a soma somente do sexo feminino será:
=SOMASE(C:C;”F”;B:B)
Voltando à sumif no VBA, temos seus argumentos:
SumIf(Range(“C:C”), “F”, Range(“B:B”), que são equivalentes aos da fórmula do Excel, utilizando a expressão range para representar as colunas que vamos selecionar em cada argumento.
Com o código pronto, para que a macro seja executada, vamos criar um botão que roda esta macro. Para criar este botão clicamos em Inserir > Formas > Retângulo.
Inserir Botão
Com o retângulo feito, podemos dar um duplo clique em seu interior para inserção do texto, que no nosso exemplo é calcular, podemos ajustar a formatação conforme desejarmos.
Botão Excel
Agora, vamos associar o botão à macro que criamos. Para isso, clicamos com o botão direito e selecionamos Atribuir Macro.
Atribuir macro ao botão
Selecionamos a macro criada, que chamamos de somase no exemplo e clicamos em OK.
Atribuir macro
Com isso, sempre que clicarmos no botão nossa macro realizará o cálculo do somase e trará o resultado na célula F1.
Levamos então a somase, que é uma fórmula do Excel, para o VBA e vimos que podemos fazer isso com a fórmula do Excel que desejarmos.
Você já viu o que os nossos alunos dizem sobre os nossos cursos de Excel, VBA e Power BI? Clique aqui para ir até lá!
Quer aprender mais sobre VBA com um Minicurso Gratuito?
Sócio fundador e especialista em Python da Hashtag Treinamentos. Criador do Método Impressionador para ensinar pessoas comuns a crescerem na carreira e se destacarem na empresa usando o Python.