Hoje eu quero te mostrar como usar o VBA VLookUp para fazer PROCV pelo VBA e ainda utilizar o PROCV em várias colunas!
Vamos ter 2 conteúdos nessa publicação, então vou deixar o link de cada parte para que possa ir direto onde precisa:
Fala, Impressionadores! Hoje você vai ver duas formas de fazer o PROCV no VBA.
A primeira forma é tentar utilizar as funções do Excel dentro do VBA, e a segunda forma é através de outras estruturas que simulem o PROCV dentro do VBA!
E aí, pronto para aprender essas formas de utilizar essa importante função?
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!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Abaixo temos um exemplo parecido com aulas anteriores, onde temos IDs dos vídeos aqui do canal da Hashtag no Youtube, e a quantidade de visualizações de cada vídeo.
Temos a disposição de aproximadamente 500 IDs listados. Abaixo temos alguns deles, para ilustrar o exemplo da aula de hoje:
A seguir temos duas formas de utilizar o PROCV no VBA. Acompanhe com a gente!
A primeira forma que apresentamos na aula é a qual chamamos diretamente as funções do Excel no VBA: WorksheetFunction.
Através desse objeto, conseguimos usar as funções do Excel dentro do VBA, para usar de seu potencial dentro dos códigos. Lembrando que os nomes das funções chamadas dentro do VBA são todas escritas em inglês.
Caso você não saiba como utilizar a fórmula PROCV, recomendamos outro post aqui do blog sobre como utilizar essa função no Excel!
Veja o código exemplo abaixo:
Sub vlookupVBA()
Range("E2").Value = WorksheetFunction.VLookup(Range("E1").Value, Range("A:B"), 2, 0)
End Sub
Comentários a respeito do código:
Veja o resultado do código:
A segunda forma de utilizar o PROCV no Excel é através de uma estrutura de repetição For Next.
A seguir apresentamos o código responsável por conseguir fazer a mesma função do PROCV através de outras estruturas, sem utilizar diretamente a função.
Sub vlookupVBA2()
For linha = 2 To 501
If Range("A" & linha).Value = Range("E1").Value Then
Range("E2").Value = Range("B" & linha).Value
Exit For
End If
Next
End Sub
Comentários a respeito do código acima:
Observe o resultado do código do segundo exemplo:
Como atribuir macro a um botão
O código criado tem a possibilidade de ser acionado através de um botão. Ele vai ser responsável por acionar o nosso código, ao clicar no botão.
Para isso, temos que inserir na nossa planilha um retângulo de cantos arredondados. Após isso, você pode personalizar o botão da forma que você queira.
Agora basta associar a macro em questão associada ao botão que deseja tê-lo como acionador, com o botão direito do mouse.
Você sabia que é possível criar uma função personalizada PROCV em várias colunas para que você consiga buscar em mais de uma coluna?
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!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala, galera! Nessa aula eu quero te mostrar como criar sua própria função VBA, isso mesmo como criar função no VBA para te auxiliar!
A ideia dessa aula é criar um PROCV em várias colunas no VBA, pois como você deve saber o PROCV no Excel vai buscar apenas em uma coluna.
Então vamos fazer uma busca em mais de uma coluna no Excel para aprimorar essa busca utilizando o VBA.
Claro que para criar essa função nós vamos utilizar algumas estruturas que você vai aprender. Vamos aprender sobre a estrutura de repetição For Each e a estrutura If no VBA.
Com isso vamos poder criar o PROCV no VBA de forma eficiente e mais aprimorado do que já temos.
E com esse conhecimento você vai poder criar as suas próprias funções para se adequar ao que você precisa quando tiver esse problema e as funções comuns não puderem ajudar!
Function MeuPROCVAula(valor_procurado As Variant, intervalo_procura As Range, intervalo_resposta As Range, Optional intervalo_procura_opcional As Range) As Variant
cont = 1
For Each celula In intervalo_procura
If celula = valor_procurado Then
MeuPROCVAula = intervalo_resposta(cont, 1)
Exit Function
End If
cont = cont + 1
Next
If Not (intervalo_procura_opcional Is Nothing) Then
cont = 1
For Each celula In intervalo_procura_opcional
If celula = valor_procurado Then
MeuPROCVAula = intervalo_resposta(cont, 1)
Exit Function
End If
cont = cont + 1
Next
End If
MeuPROCVAula = "Valor não encontrado"
End Function
Explicação da função criada:
Vamos a dois exemplos com a nossa função MeuPROCV (MeuPROCVAula também):
Exemplo 1) Código B737
No exemplo procuramos o código B737 no intervalo de células de C2 a C14.
Queremos retornar o valor da coluna A (de A2 a A14).
A resposta no caso é o Produto L, que está na mesma linha do código B737.
Exemplo 2) Código D296
No exemplo procuramos o código D296 no intervalo de células de C2 a C14. Queremos retornar o valor da coluna A (de A2 a A14).
Como não há D296 na coluna C, vamos procurar ele na coluna D (código substituto).
A resposta no caso é o Produto E, porque ele está na mesma linha do código substituto D296.
OBS: Atalho para conhecer/lembrar dos argumentos criados: Digite o nome da fórmula, “(“ e aperte Ctrl+Shift+A. Resultado:
Nessa aula eu te mostrei como você pode fazer o PROCV dentro do VBA de duas maneiras diferentes e ainda te mostrei como usar o VBA VLookUp para criar um PROCV em várias colunas para facilitar a sua busca.
O primeiro exemplo envolveu a utilização de uma forma idêntica de utilizar o PROCV pelo Excel dentro do VBA: através do objeto WorksheetFunction!
Já o segundo exemplo, envolveu a estrutura If e else no VBA, além de estrutura de repetição do tipo For!
Você já deve ter notado como o VBA é versátil e pode te ajudar em diversas situações, seja para utilizar as próprias funções do Excel ou até mesmo para criar funções personalizadas!
Então mesmo que você não tenha uma função, você pode utilizar o VBA para criar essa função de forma personalizada para te auxiliar a resolver o seu problema!
Para acessar outras publicações de VBA, clique aqui!
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.