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 ou acesse o nosso Canal do YouTube para mais vídeos!

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?

Muitas pessoas acabam não tendo conhecimento em VBA, então para criar certas ações acaba ficando mais difícil criar do zero na programação não é mesmo?

Por esse motivo, você tem a possibilidade de utilizar as fórmulas do próprio Excel dentro do VBA. Isso é feito com a Worksheetfuncntion no VBA.

Mas por ser dentro do VBA, ela não vai ser uma fórmula como temos no Excel que atualiza a cada ação que fazemos. Ela só será atualizada quando você rodar seu código novamente, então pode ser tanto uma vantagem quanto uma desvantagem dependendo da sua aplicação.

Como Utilizar o Worksheetfunction no VBA?

Em nosso exemplo, vamos utilizar a Worksheetfunction para fazermos um SOMASE no VBA, ou seja, vamos somar valores de acordo com uma condição. Neste caso, temos uma planilha de vendas e vamos fazer uma soma com condições com o objetivo de somar todas as vendas de vendedores do sexo feminino.

Base de dados

Para fazermos esta soma, vamos abrir o VBA (alt + F11 ou alt +FN+F11, caso não funcione).

Caso não aparece a janela para escrever o código, você pode clicar em inserir e depois em Módulo. Feito isso você pode inserir o código abaixo:

Sub somase()

Range("F1") = WorksheetFunction.SumIf(Range("C:C"), "F", Range("B:B"))

End Sub

Onde:

Range(“F1”) aqui é onde vamos atribuir o valor da soma, ou seja, a célula F1 vai receber o resultado da SOMASE que estamos fazendo dentro do VBA;

WorksheetFunction. é o método 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.

OBS: Infelizmente ao utilizar o VBA você terá que utilizar as fórmulas em inglês para que consiga usá-las de forma correta, caso contrário o programa vai retornar um erro por não encontrar o que foi escrito.

worksheetfunction no vba

SumIf é a fórmula SOMASE em inglês, que é assim trazida para o VBA através do Worksheetfunction. Na fórmula Sumif temos os seguintes argumentos:

Sumif VBA

Já 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 ao sumif no VBA, temos os seguintes argumentos:

SumIf(Range(“C:C”), “F”, Range(“B:B”), que são equivalentes aos da fórmula do Excel. Vale ressaltar que aqui temos que utilizar a expressão range para representar as colunas que vamos selecionar em cada argumento.

O range é uma forma de informar ao VBA uma célula ou conjunto de células, então dessa forma conseguimos informar qual o intervalo vamos selecionar.

Com o código pronto podemos criar um botão para que macro seja executada. Para criar este botão basta clicar 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 basta clicar com o botão direito do mouse no retângulo criado e selecionar a opção Atribuir Macro.

Atribuir macro ao botão

Agora vamos selecionar a macro criada (somase) e vamos clicar em OK para atribuir essa ação ao retângulo que acabamos de criar.

Atribuir macro

Feito isso, você vai notar que ao passar o mouse sobre o retângulo, ele vai trocar da visualização de seta para uma mão. Isso indica que agora temos um botão.

Então sempre que você clicar nesse botão o código somase que criamos será executado, então vamos fazer a soma das vendas somente dos vendedores do sexo feminino e vamos inserir o resultado dentro da célula F1.

image 6

Você pode estar se perguntando como fazer para alterar os argumentos, ou alterar para os vendedores do sexo masculino por exemplo.

Essas modificações todas serão feitas dentro do seu código em VBA, então precisa entrar no código que criou para fazer suas modificações.

Conclusão

Nessa aula eu te mostrei o que é Worksheetfunction no VBA e como você pode utilizar as fórmulas do Excel dentro do VBA para fazer suas automações dentro do Excel.

Essa é uma maneira fácil de trazer as fórmulas do Excel para dentro do VBA sem que você tenha que de fato criá-las do zero para fazer suas atividades.

É claro que nem todas as fórmulas estão disponíveis, então em alguns casos você vai ter que criar sua própria fórmula ou descobrir uma maneira mais simples de fazer o que precisa!

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