Blog

Postado em em 1 de agosto de 2020

WORKSHEETFUNCTION no VBA

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!

O que é o Worksheetfunction no VBA?

Worksheetfunction é um objeto do VBA que permite que fórmulas do Excel sejam utilizadas em nosso código.

Quando utilizar esse método?

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.

Como utilizar o Worksheetfunction no VBA?

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

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

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

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

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

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

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

Atribuir macro ao botão

Selecionamos a macro criada, que chamamos de somase no exemplo e clicamos em OK.

Atribuir macro

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.

Hashtag Treinamentos

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?


Quer participar do maior evento de Power BI da América Latina de forma 100% Online e Gratuita? Inscreva-se abaixo!