Blog

Postado em em 26 de junho de 2019

WORKSHEETFUNCTION – Como usar as FUNÇÕES do EXCEL no VBA

Nessa publicação vamos explicar como utilizar a classe WorksheetFunction dentro do VBA, além de mostrar algumas aplicações com exemplos!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para baixar a planilha utilizada nessa aula clique aqui!  

O que é o WorkSheetFunction?

O WorkSheetFunction é uma classe do VBA (Visual Basic for Application) que nos permite utilizar funções do Excel dentro do VBA, ou seja, podemos utilizar as fórmulas próprias do Excel dentro do código em VBA. Vale lembrar que essas fórmulas dentro do VBA serão todas escritas em inglês.

Neste caso, vamos utilizar essa classe para utilizar a função PROCV e colocar o resultado em uma célula da nossa planilha com a utilização do VBA. Portanto, vamos utilizar a programação para atribuir o resultado da fórmula PROCV sem que seja necessário escrevermos a fórmula propriamente dita dentro da célula.

Caso você não saiba como utilizar a fórmula PROCV, clique aqui!

Tabela base
Tabela base

Quando utilizar essa classe?

É interessante utilizar quando precisamos ter somente o valor do resultado na célula e não a fórmula. Além da possibilidade de alguém modificar a fórmula com outros dados ser nula, pois não teremos a fórmula escrita na célula e sim o resultado dela.

Outro ponto importante é caso o usuário não queira mostrar de onde está vindo o resultado para que outras pessoas não tenham acesso a essas informações.

A utilização dessa função torna a planilha mais leve, pois não teremos a utilização de fórmulas e consequentemente não teremos atualização constante de fórmulas para recalcular quando algum dado for alterado, deixando o funcionamento da planilha mais rápido.

Como utilizar o WorkSheetFunction?

Primeiramente, teremos que acessar o ambiente VBA. Temos duas formas de fazer isso: a primeira é indo até a guia desenvolvedor e clicando na opção Visual Basic e a outra forma é utilizando o atalho ALT + F11 (ALT + Fn + F11 caso a primeira opção não funcione). Feito isso, uma nova janela será aberta.

Visual Basic for Applications
Visual Basic for Applications

Para podermos escrever o nosso código é necessário criar um novo módulo, para isso basta ir até a guia Inserir e depois em Módulo.

Criar novo módulo
Criar novo módulo

Feito isso, temos uma aba em branco para começarmos a escrever o nosso código.

Ambiente VBA
Ambiente VBA

A fórmula que vamos escrever será a seguinte:

Utilizando o WorksheetFunction
Utilizando o WorksheetFunction

A primeira linha indica o começo da macro e o nome que foi dada a ela que é rotina.

A última linha indica o término da macro, ou seja, a macro rotina é tudo que está entre Sub e o End Sub.

O símbolo de = no VBA significa que vamos atribuir um valor a uma variável, célula ou intervalo. Neste caso, nós vamos atribuir a fórmula do PROCV ao valor da célula F3, ou seja, o Range(“F3”).Value significa que estamos atribuindo algo ao valor da célula F3.

Logo em seguida temos a função WorksheetFunction que diz ao VBA que vamos utilizar as funções disponíveis no Excel. Neste caso, vamos utilizar a função PROCV, no entanto a linguagem do VBA é toda em inglês, portanto teremos que colocar essa fórmula em inglês que é VLookup.

Essa fórmula tem os mesmos argumentos da fórmula utilizada dentro do Excel, ou seja, teremos 4 argumentos: o primeiro é o valor que estamos procurando que se encontra na célula F2, o segundo é a matriz onde estamos procurando esse valor que vai da célula B3 até C8 (representado no VBA como Range(“B3:C8”) ), o terceiro é a coluna onde vamos pegar o resultado que será a segunda coluna (que é a coluna da venda do funcionário) e o último argumento é para indicarmos o tipo de correspondência que é 0, para indicar que queremos a correspondência exata.

Obs: É importante ressaltar que a separação dos argumentos dentro do VBA é feita por vírgulas, pois é o padrão inglês e não o ponto e vírgula como utilizamos na versão em português do Excel.

Escrito o código podemos atribuir ele a um botão, e sempre que pressionarmos esse botão essa macro será executada e nosso código irá atribuir o resultado do PROCV dentro da célula desejada.

Para atribuirmos a macro a um botão vamos clicar nele com o botão direito e selecionar a opção Atribuir macro.

Atribuindo Macro
Atribuindo Macro

Feito isso, será aberta uma janela contendo as macros que foram gravadas até o momento. No nosso caso acabamos de gravar a macro chamada rotina.

Macro com WorksheetFunction
Macro com WorksheetFunction

Vamos selecionar a macro desejada e pressionar OK. Agora podemos alterar o nome na célula F2 para Julia, por exemplo, e pressionar o botão. Ao pressioná-lo podemos observar que o valor da venda foi atualizado para o valor correto da venda do funcionário selecionado.

Resultado do WorksheetFunction
Resultado do WorksheetFunction

O mesmo ocorre para qualquer outro funcionário que selecionarmos e pressionarmos o botão.

Macro funcionando
Macro funcionando

Obs: Vale lembrar que como atribuímos a macro a um botão o valor da nossa célula F3 só será atualizado depois que o botão for pressionado, ou seja, se modificarmos o nome do funcionário na célula F2 a célula abaixo só será atualizada após pressionar o botão.

Nesta aula, aprendemos como utilizar a fórmula PROCV do Excel dentro do ambiente VBA sem atribuir a fórmula dentro da célula, mostrando apenas o resultado sem que fique visível a fórmula. Desta maneira, quem estiver utilizando a planilha não poderá modificar a fórmula da célula e, portanto, sempre irá obter os valores corretos sem erros.



Quer aprender tudo de Excel para se tornar o destaque de qualquer empresa?