×
Ir ao conteúdo
  • Cadastre-se

Excel Busca e referência com VLookup


Ir à solução Resolvido por AfonsoMira,

Posts recomendados

Salve amigos! Mais uma vez recorro ao vasto conhecimento dos integrantes desse forum.

Recebi uma planilha de um departamento e estou com problemas com a busca e referência.

Na Plan2 existem 4 colunas, K, Q, BD e BC.

A coluna K tem o nome de ROUTER1 e a coluna Q, ROUTER2, coluna BC, PASS1 e coluna BD, PASS2

A TABELAB de referência está na Plan3("REF") com 3 colunas e 668 linhas

Se a coluna K tiver informação, faz um PROCV na 2ª coluna da TABELAB e retorna o valor na coluna BC

e na 3ª coluna da TABELAB e retorna o valor na coluna BD.

Se a coluna K estiver vazia, o valor a ser considerado é o da mesma linha na coluna Q, faz um PROCV na

2ª coluna da TABELAB e retorna o valor na coluna BC e na 3ª coluna da TABELAB e retorna o valor na coluna BD.

Resumindo, havendo K & i, BC & i e BD & i serão preenchidos

Não havendo K & i, Q & i passa a ser referência, BC & i e BD & i serão preenchidos.

O código abaixo não funciona.

Quem puder compartilhar conhecimento para acertar o código, agradeço desde já.

 

Sub PASS_TEST() '***********************************************************

    Dim ROUTER1, ROUTER2, TABELAB 	As Range
    Dim ultLinha        			As Integer
    Dim resultado_procv 			As Variant
    Dim i 							As Integer
    
	Application.ScreenUpdating = False
    
    ultLinha = Sheets("Plan2").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    Set TABELAB = Sheets("REF").Range("a2:c668")
    Set ROUTER1 = Sheets("Plan2").Range("K" & ultLinha)
    Set ROUTER2 = Sheets("Plan2").Range("Q" & ultLinha)
    
    Sheets("Plan2").Select
    
    For i = 2 To ultLinha
      
        If ROUTER1 <> "" Then
            ROUTER1 = Sheets("Plan2").Range("K" & i).Value
            resultado_procv = Application.VLookup(ROUTER1, TABELAB, 2, False)
            Sheets("Plan2").Range("BD" & i).Value = resultado_procv
        ElseIf ROUTER1 = "" Then
            ROUTER1 = Sheets("Plan2").Range("Q" & ultLinha).Value
            resultado_procv = Application.VLookup(Bairro2, TABELAB, 2, False)
            Sheets("Plan2").Range("BD" & i).Value = resultado_procv
        End If
        
    Next i
    
    i = i + 1
    
End Sub

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@Martti Boas,

 

Veja se é isto que deseja:
 

Sub PASS_TEST() '***********************************************************

    Dim ROUTER1, ROUTER2, TABELAB   As Range
    Dim ultLinha                    As Integer
    Dim resultado_procv             As Variant
    Dim i                           As Integer
    
    Application.ScreenUpdating = False
    
    ultLinha = Sheets("Plan2").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    Set TABELAB = Sheets("REF").Range("a2:c668")
    
    Sheets("Plan2").Select
    
    For i = 2 To ultLinha
    
    Set ROUTER1 = Sheets("Plan2").Range("K" & i)
    Set ROUTER2 = Sheets("Plan2").Range("Q" & i)
      
        If ROUTER1 <> "" Then
            resultado_procv = Application.VLookup(ROUTER1, TABELAB, 2, False)
            Sheets("Plan2").Range("BC" & i).Value = resultado_procv
            resultado_procv = Application.VLookup(ROUTER1, TABELAB, 3, False)
            Sheets("Plan2").Range("BD" & i).Value = resultado_procv
        ElseIf ROUTER1 = "" Then
            resultado_procv = Application.VLookup(ROUTER2, TABELAB, 2, False)
            Sheets("Plan2").Range("BC" & i).Value = resultado_procv
            resultado_procv = Application.VLookup(ROUTER2, TABELAB, 3, False)
            Sheets("Plan2").Range("BD" & i).Value = resultado_procv
        End If
        
    Next i
    
End Sub

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Como se tornar um desenvolvedor full-stack

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!