Blog

Postado em em 26 de junho de 2019

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

Sabe como usar o WorksheetFunction no VBA? Eu vou te mostrar como podemos utilizar as funções do Excel no VBA de forma simples!

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.

A vantagem de utilizar o WorksheetFunction é que você não precisa criar uma função específica dentro do VBA, pode simplesmente utilizar as próprias fórmulas do Excel dentro do VBA!

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

Quando Usar o WorkSheetFunction?

É 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.

Além disso você não vai precisar criar a sua própria função dependendo da sua atividade, pode economizar esse tempo utilizando uma fórmula que já existe no Excel.

Como Usar 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

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

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

Ambiente VBA

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

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

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

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

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

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.

Conclusão

Nessa aula eu te mostrei como usar o WorkSheetFunction no VBA para que você consiga usar as fórmulas do Excel dentro do VBA para te auxiliar e deixar o seu trabalho mais rápido e eficiente no Excel.

Como exemplo, nós utilizamos o WorkSheetFuntion Vlookup que é o famoso PROCV, só que ao utilizar essa fórmula dentro do VBA, não temos a fórmula diretamente na célula.

Então vamos ter apenas o resultado na célula, ao invés da fórmula e o resultado como temos normalmente no Excel. Isso é muito interessante, pois não precisa mostrar de onde vem o resultado nem como chegou a esse resultado

Quer aprender mais sobre VBA com um Curso de VBA com Certificado? Então basta clicar aqui e acessar a nossa página com todas as informações do nosso Curso de VBA Online.

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer aprender a criar Dashboards Incríveis no Excel para impressionar?Coloque seu e-mail e comece agora esse minicurso!