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 sair do zero em Python e virar uma referência na sua empresa? Matricule-se agora mesmo no Python Impressionador!