Aprenda a utilizar a função PROCV no VBA

No último artigo, ensinamos a como utilizar a função PROCV ou VLOOKUP(se o seu Excel estiver em Inglês) no Excel. Neste artigo, iremos ensinar a como utilizar a função PROCV no VBA.

Vamos mostrar 4 exemplos, sendo o último aonde mostraremos como fazer para que o PROCV, dentro do VBA, procure os valores em uma outra planilha.

Youtube

Assista ao vídeo abaixo, caso prefira aprender como utilizar a função PROCV dentro do VBA assistindo a um vídeo.

Ah, e não se esqueça de se INSCREVER no nosso canal.

 

E coloque o seu melhor e-mail abaixo para receber todas as nossas novidades em primeira mão.

O que é PROCV?

Em resumo, PROCV é uma das fórmulas mais utilizadas no Excel, e ela serve para procurar valores na vertical em um certo intervalo. E a resposta da função é o valor procurado, ou os valores associados ao valor procurado.

Para saber mais detalhes de como funciona a função PROCV, preparamos um artigo bem legal, explicando e dando exemplos de como funciona a fórmula PROCV no Excel. Para acessar, clique aqui.

Montar a tabela

Para o nosso exemplo, iremos utilizar a mesma tabela que utilizamos no artigo sobre PROCV para Excel.

Iremos ter duas tabelas diferentes. A primeira tabela, deverá ficar na aba “Planilha1” e irá conter os dados cadastrais dos produtos, e a segunda deverá ficar na aba “Planilha2” e irá ter os dados da quantidade de vendas de cada produto.

A aba “Planilha1” deverá ficar da seguinte forma:

primeira tabela que será utilizada no exemplo de aplicação da fórmula PROCV

A segunda tabela, irá ficar na “Planilha2” e deverá ficar da seguinte forma:

segunda tabela que será utilizada no exemplo de aplicação da fórmula PROCV

Agora que já temos as nossas tabelas, vamos para o ambiente do VBA.

VBA

Para abrir o ambiente aonde o código VBA deverá ser inserido, vá na aba “Desenvolvedor”, que fica na parte superior do Excel. E depois, clique em “Visual Basic”.

Irá abrir, uma nova janela e você será redirecionado para ela.

Agora clique em “Planilha1 (Planilha1)”.

Após clicar em “Planilha1 (Planilha1)”, aonde estava o fundo cinza, apareceu uma janela com fundo branco. É nessa nova janela, aonde o código em VBA deverá ser escrito.

Exemplo 1 – PROCV em uma linha no VBA

Neste primeiro exemplo, iremos utilizar o PROCV para buscar o valor de uma célula e colocar o valor da resposta em uma outra célula. Igual quando fazemos o PROCV no Excel.

Sub vbaProcv()
    Dim codigo_produto As Integer
Dim resultado_procv As Variant
codigo_produto = Sheets("Planilha1").Range("A2").Value resultado_procv = Application.VLookup(codigo_produto, Sheets("Planilha2").Range("A:B"), 2, False) Sheets("Planilha1").Range("C2").Value = resultado_procv End Sub

Para podermos utilizar o PROCV  no VBA, precisamos utilizar a função “Application.VLookup” do VBA. É essa função responsável por fazer o PROCV no VBA.

Veja, que ela tem os mesmos 4 parâmetros que o PROCV utilizado no Excel, sendo que no VBA a separação dos parâmetros é feito pela vírgula, ao invés do ponto e virgula.

Rode esse código, e veja o resultado:

Na célula C2 apareceu o valor 20, que é a quantidade do produto 1, que está na “Planilha2”. Igual, a quando foi feito o PROCV nessa tabela.

Exemplo 2 – PROCV em várias linhas no VBA

Agora iremos mostrar, como fazer para rodar o código acima para cada linha, que tenha o código do produto preenchido, sem a necessidade de mudar os valores de cada linha manualmente.

Sub vbaProcvTodosValoresComErro()
Dim codigo_produto As Integer
Dim ultLinha As Integer
Dim inicio As Integer
Dim resultado_procv As Variant
ultLinha = Sheets("Planilha1").Cells(Cells.Rows.Count, 1).End(xlUp).Row For inicio = 2 To ultLinha codigo_produto = Sheets("Planilha1").Cells(inicio, 1).Value resultado_procv = Application.VLookup(codigo_produto, Sheets("Planilha2").Range("A:B"), 2, False) Sheets("Planilha1").Cells(inicio, 3).Value = resultado_procv Next inicio End Sub

O código acima irá aplicar a função PROCV para cada linha preenchida da tabela. 

A variável “ultLinha” terá o valor da última linha, da coluna A, com valor preenchido. Ou seja, o valor dessa variável será 11.

Depois o código entrará no laço For, com o valor inicial 2, até o valor final 11, que é o valor da variável “ultLinha”. Para cada vez que o código entrar no For, o PROCV será aplicado em uma linha da tabela.

Ao final da execução, a sua tabela deverá estar da seguinte forma:

Exemplo 3 – Controlando a mensagem de erro

Uma funcionalidade bem legal, é a possibilidade de controlar a mensagem de erro do PROCV. No nosso exemplo, o valor “#N/D” é uma mensagem de erro, informando que o valor buscado não foi encontrado. Porém, não seria melhor se viesse, de fato, uma mensagem informando que o valor buscado não foi encontrado?

Para conseguir controlar a mensagem de erro, basta fazer uma pequena alteração no código do último exemplo.

Sub vbaProcvTodosValoresComErro()
Dim codigo_produto As Integer
Dim ultLinha As Integer
Dim inicio As Integer
Dim resultado_procv As Variant ultLinha = Sheets("Planilha1").Cells(Cells.Rows.Count, 1).End(xlUp).Row For inicio = 2 To ultLinha codigo_produto = Sheets("Planilha1").Cells(inicio, 1).Value resultado_procv = Application.VLookup(codigo_produto, Sheets("Planilha2").Range("A:B"), 2, False) If IsError(resultado_procv) Then Sheets("Planilha1").Cells(inicio, 3).Value = "valor não encontrado" Else Sheets("Planilha1").Cells(inicio, 3).Value = resultado_procv End If Next inicio End Sub

Iremos passar na função “IsError” do VBA, a variável “resultado_procv”, essa variável recebeu o valor retornado pelo PROCV do VBA.

A função “IsError” do VBA, irá verificar, se o resultado é um erro ou não. E para podermos controlar de fato, a mensagem que será exibida, precisaremos utilizar também a condicional “IF“.

Assim, iremos verificar se o resultado é um erro ou não. Se for um erro, iremos colocar na célula, a mensagem “valor não encontrado”. Se não for um erro, iremos colocar o valor retornado pelo VBA.

Com essa alteração, a sua planilha deve estar da seguinte forma:

Exemplo 4 – Utilizar o PROCV com o VBA para procurar valores em outra planilha

Todos os exemplos que mostramos até agora, foi utilizando o PROCV junto com o VBA para procurar valores que estão no mesmo arquivo.

Neste último exemplo, iremos mostrar como fazer para procurar valores em uma outra planilha que está em um outro arquivo.

Para isso, copie os dados que estão na aba “Planilha2”, abra um outro arquivo e cole os dados nessa outra planilha desse novo arquivo.

Para podermos realizar o PROCV no VBA para buscar valores em uma outra planilha de um outro arquivo é bem simples, basta adicionar o comando abaixo antes do Sheets(“Planilha2”) que está dentro da função “Application.Vlookup”.

  • Workbooks(“nome_do_arquivo”)

Com a inclusão deste comando a nossa função “Application.Vlookup” ficará da seguinte forma:

  • Application.VLookup(codigo_produto, Workbooks(“Pasta1”).Sheets(“Planilha2”).Range(“A:B”), 2, False)
  • O nome do arquivo aonde irei procurar os valores se chama Pasta1 e a planilha se chama “Planilha2”

E o nosso código ficará da seguinte forma:

Sub vbaProcvTodosValoresComErro()

Dim codigo_produto As Integer
Dim ultLinha As Integer
Dim inicio As Integer
Dim resultado_procv As Variant ultLinha = Sheets("Planilha1").Cells(Cells.Rows.Count, 1).End(xlUp).Row For inicio = 2 To ultLinha codigo_produto = Sheets("Planilha1").Cells(inicio, 1).Value resultado_procv = Application.VLookup(codigo_produto, Workbooks("Pasta1").Sheets("Planilha2").Range("A:B"), 2, False) If IsError(resultado_procv) Then Sheets("Planilha1").Cells(inicio, 3).Value = "valor não encontrado" Else Sheets("Planilha1").Cells(inicio, 3).Value = resultado_procv End If Next inicio End Sub

Se inscreva!

Chegamos ao final do artigo. Se você curtiu esse tutorial, se inscreva para receber o nosso curso gratuito de VBA, assim como as nossas novidades.

Ah, e não se esqueça de curtir a nossa página do Facebook. É só visitar a nossa página através do link https://www.facebook.com/excelpraontem/ e clicar em “Curtiu” por lá.

E se inscreva no nosso canal do Youtube.

4 thoughts to “Aprenda a utilizar a função PROCV no VBA”

  1. Olá à todos.
    Estou tentando fazer uma macro com procv, porém, quando acrescento outros linhas, ele dá erro e não insere a fórmula nessas linhas novas, como fazer?
    Obrigado.

    1. Iai Thiago, blz? Te mandei um e-mail dá uma olhada lá. Enquanto isso, dá uma olhada no exemplo 2, que eu acho que já te ajuda.

  2. Estou tentando organizar esta planilha com procv automatico de Vba, mas esta dando erro constante.

    Alguem poderia me ajudar ou enviar um modelo para que eu posso trabalhar com exemplo similar?

    Poderia enviar o arquivo para alguem dar uma olhada?

    Obrigado

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *