Notifications
Clear all

Procura com códigos de diferentes formatos

4 Posts
2 Usuários
0 Reactions
905 Visualizações
(@finaljustice)
Posts: 91
Trusted Member
Topic starter
 

Boa noite,

Tenho uma relação de 350 mil itens, que preciso fazer um "procv" porém meu problema é que há 35 formatos para os códigos e quem vai realizar a procura não sabe necessariamente o formato em que o código que ela está digitando.

Deixe-me exemplificar:
O usuário quer procurar o código: "DM2TSEL" e esse é o código que ele vai digitar para buscar as outras informações. Porém este código está com no seguinte formato no banco de dados: "DM2-T-S-EL".

A minha solução, que estou pensando é, em VBA contar o número de caracteres que o usuário irá inputar, com base nesse valor, como sei que para códigos com 15 caracteres tenho 5 formatos faço o vba "montar" esses 5 formatos e executo a procura na lista de itens.

Caso não tenham entendido, por exemplo, para códigos com 10 caracteres tenho essas 4 variações.

000-95-105 3-2-3
356-420-18 3-3-2
DM2-T-S-EL 3-1-1-2
US-008-029 2-3-3

Não posso mexer nos códigos.

Há uma maneira menos "bruta" e mais elegante de realizar esse tipo de operação ou meu raciocínio está correto e essa é a melhor maneira de fazer isso?

Obrigado pela atenção.
Att
Luis

 
Postado : 07/08/2014 7:06 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Pelo pouco que vc postou, eu so vi as separações dos codigos acontece ndo por espaço ou "-".

Se forem somente estes 2 caracteres que fazem a variaçao dos codigos, da pra montar uma fórmula usando a função SUBSTITUIR().

Vc pode postar ao menos os codigos e alguns dados pra ajudar a montar a formula?

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 07/08/2014 7:48 pm
(@finaljustice)
Posts: 91
Trusted Member
Topic starter
 

Pelo pouco que vc postou, eu so vi as separações dos codigos acontece ndo por espaço ou "-".

Se forem somente estes 2 caracteres que fazem a variaçao dos codigos, da pra montar uma fórmula usando a função SUBSTITUIR().

Vc pode postar ao menos os codigos e alguns dados pra ajudar a montar a formula?

Obrigado por responder,

Sim de fato o único separador é o "-" mesmo. Abaixo uma lista de exemplos dos tipos de códigos e como são formatados que já identifiquei:
55-64
000-13
18-778
905-301
LOE-SCH
011-524-7
356-41-42
D-004-300
DM2-T-E-T
L-004-101
000-95-105
356-420-18
DM2-T-S-EL
US-008-029
000-056-007
N-010-020-2
356-02-102-1
D-180-003-M2
000-000-030-0
PSP-68-101-10
000-006-002-00
95B-035-793-1E0
N-011-524-7-041
N-011-901-23-00
COL-77-300-S1-3
WAP-050-10-3-12
000-043-207-72-8
616-08-141-1-VVV
240-271-008-2-28
LOE-SCH-EN-98-656
000-721-971-U-001
993-931-043-21-01

Para todos esses códigos, o usuário não vai saber aonde fica os separadores (-), então o ideal seria ele simplesmente inserir os numeros/ letras do código sem se preocupar com os hifens, e o vba montaria essas variações para realizar as procuras... Estou pensando ainda se essa é a melhor abordagem, por isso estou consultando aqui, para ver se há outras idéias mais elegantes.

Att,
Luis

 
Postado : 08/08/2014 8:59 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Fiz um exemplo pra vc ver.

Sugiro usar a busca pelo termo parcial. (O inconveniente é se esse "parcial" tiver mais de um resultado possível, o que vai resultar em erro).

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 08/08/2014 10:04 am