Na tabela DadosOrg a coluna SERIAL é formada por números, ao passo que na tabela OrdemTrab a coluna SERIAL é formada por textos.
=PROCV("41449";OrdemTrab[#Tudo];5;0) ---> esta fórmula retorna o resultado correto porque o valor procurado está entre aspas ("41449") , e isso converte o número em texto, que fica compatível com a coluna em que é feita a busca.
=PROCV([@SERIAL];OrdemTrab[#Tudo];5;0) ---> esta retorna #N/D porque está buscando número em um intervalo que contém textos, conforme comentei acima.
Experimente essa abaixo.
=PROCV(TEXTO([@SERIAL];"0000");OrdemTrab[#Tudo];5;0)
__________________________________________________________________________________________________________________
Sobre o assunto inicial deste tópico, vi que você alterou o código que passei.
ElseIf Left(.Cells(k, "A"), 11) <> Left(.Cells(x, "A"), 12) Then ---> ao alterar de 11 para 12 você tornou esse comando inútil, e esse comando no código que passei tem a missão de impedir a criação de registros duplicados no resultado, aí, para "compensar o seu erro", você acrescentou comando para remover os registros duplicados.
Sugestão: no futuro, se precisar de ajustes em códigos retorne, ao invés de fazer gambiarras.
Dica - não utilize Select nos seus códigos.
Postado : 03/01/2025 8:22 am