Já imaginou utilizar a função PROCX sem o Microsoft 365, ou qualquer outra função sem ter a versão mais atual do Excel?
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala, Impressionadores! Você sabia que é possível criar qualquer função no VBA? Isso mesmo, você consegue criar qualquer função do Excel dentro do VBA.
E na aula de hoje eu quero te mostrar como criar função PROCX no VBA mesmo que você não tenha a versão mais recente do Excel.
Dessa forma você vai poder utilizar o PROCX sem o Office 365 com a criação das funções personalizadas.
Como o VBA é uma linguagem de programação você vai conseguir fazer a criação de funções no VBA para utilizar no Excel e facilitar a sua vida.
Claro que você pode criar outras funções além do PROCX, pode criar suas próprias funções para facilitar o seu trabalho, mas a ideia hoje é te mostrar como criar a função PROCX no VBA.
Essa função é uma evolução da função PROCV, então a busca dela não vai ter a restrição que tínhamos no PROCV.
E aí, vamos a criação de funções no VBA utilizando estrutura de repetição for, estrutura condicional if e muito mais!
Inserindo um Módulo no VBA
Para criar um código dentro de um módulo, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.
Como não temos nenhum módulo destinado ao tema da aula de hoje, e por questão de organização, vamos criar um módulo à parte.
Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.
Por padrão ele terá o nome de “Módulo 1”.
Colocaremos a seguinte Function dentro dele:
Function meuPROCXAula(valorProcurado As Variant, intervaloPesquisa As Range, intervaloResultado As Range, Optional seNaoEncontrado As Variant, Optional ordemPesquisa As Integer)
If intervaloPesquisa.Count <> intervaloResultado.Count Then
meuPROCXAula = "Os intervalos possuem tamanhos diferentes"
Exit Function
End If
If ordemPesquisa = 1 Or ordemPesquisa = 0 Then
ini = 1
fim = intervaloPesquisa.Count
passo = 1
Else
ini = intervaloPesquisa.Count
fim = 1
passo = -1
End If
For i = ini To fim Step passo
If intervaloPesquisa(i) = valorProcurado Then
meuPROCXAula = intervaloResultado(i)
Exit Function
End If
Next
If IsMissing(seNaoEncontrado) Then
meuPROCXAula = "Não encontrou o valor procurado"
Else
meuPROCXAula = seNaoEncontrado
End If
End Function
Explicação do código:
Exemplo de uso da Function
Podemos, agora, invocar essa Function dentro do Excel, como uma função, mas agora de forma personalizada.
Observe abaixo agora a utilização da Function:
Nessa aula você lidou com:
Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA toda semana! Um abraço!
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.