Notifications
Clear all

Campo pesquisável

11 Posts
2 Usuários
0 Reactions
2,173 Visualizações
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Olá, bom dia!

Recebi esta planilha (anexa) e preciso adaptá-la para atender minha necessidade. Primeiro vou explicar como ela funciona e depois o que estou precisando para que os amigos possam ver se tem jeito.

COMO FUNCIONA:

1. No campo de pesquisa (B6) pode-se digitar parte de um nome (que faz parte de uma tabela chamada TabMúsicos) e ao clicar no menu suspenso da célula (setinha) aparecem apenas os nomes que contenham o fragmento digitado.

Exemplo: digite o nome "Chico" e clique na setinha. Aparecerão as opções Chico Buarque e Chico Science.
Se nenhum dos dois forem selecionados aparecerá a mensagem de entrada inválida e limpa-se a pesquisa.

2. No campo "Sensível a maiúsculas" (B3) pode-se definir se a pesquisa terá essa sensibilidade.

O QUE EU PRECISO:

Do jeito que está, o campo de pesquisa limita-se à célula B6. Entretanto eu gostaria que o campo de pesquisa pudesse fazer parte de uma tabela que vai ganhando novas linhas. Nessa tabela existirá uma coluna para se fazer a pesquisa.

Faça o seguinte teste: copie a célula B6 e a cole em B7. Veja que em B7 ela não funciona mais corretamente.

Eu gostaria que ela continuasse a funcionar em B7, B8, B9... E assim por diante. Sempre que uma nova linha for acrescentada à tabela, o campo de pesquisa daquela linha pudesse continuar funcionando.

Obrigado.

 
Postado : 10/08/2016 8:34 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Glaudemir,

Boa tarde!

Acho que entendi a sua necessidade, todavia, da forma que a mesma foi desenvolvida, fica inviável fazer alteração.

O que eu não entendi foi o objetivo final, a intenção. O que você realmente precisa? Porque ter um campo de pesquisa para cada linha? Isso não deixaria a planilha muito "pesada"? Diga qual é o objetivo que talvez fique mais fácil desenvolver uma lógica que atenda de forma mais prática ao que você quer.

 
Postado : 10/08/2016 11:25 am
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Wagner, muito obrigado por sua ajuda.

Veja se com esta explicação fica mais fácil de você entender o motivo da minha necessidade (ficará mais fácil pela planilha anexa):

Nesta coluna Nome eu gostaria que fizesse aquela pesquisa. Hoje eu uso uma validação de dados do tipo lista, do jeito que fiz aqui. Com isso ficam aparecendo todos os nomes quando clico na setinha. Mas na planilha do meu trabalho já existem mais de 500 nomes, e todo dia cresce mais. Por isso fica meio inviável...

Você me perguntou o motivo pelo qual eu preciso que seja em cada linha. É justamente porque em cada linha eu vou precisar pesquisar a base de nomes

Se conseguirmos fazer aquele tipo de pesquisa, ficará muito mais fácil.

 
Postado : 10/08/2016 12:23 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Glaudemir,

Desculpe... mas ainda não está claro para mim. Vamos lá: vou fazer uma suposição: Digamos que você tem a sua tabela de músicos com 1000 músicos (ou qualquer quantidade). Esses nome estão na coluna F e começam na linha 6. Ou seja: em F6 tem o primeiro nome do músico e em F1000 tem o último nome do músico. Até aí tudo bem. O que quero saber é:

Você vai precisar digitar o nome de um desses 1000 músicos em que coluna? Quando você for digitar (ou selecionar o nome dos músicos) quer que exista uma dropdow que lhe permita digitar o nome do músico e que os nomes que se assemelhem ao que você está digitando apareçam na lista do DropDown. Certo? Depois, você quer que ao clicar no nome que você quer, esse nome seja inserido em uma determinada linha de uma determinada coluna. Certo? que linha e coluna seriam essas?

Pois, se for isso que estou pensando, você não precisa inserir uma lista em cada linha. Basta ter um dropdown associado à tabela de nomes de músicos e, através de código VBA, quando o nome for selecionado, inserir o mesmo na linha e coluna desejada. Entende?

 
Postado : 10/08/2016 2:01 pm
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Wagner, na verdade eu terei duas tabelas em abas diferentes. Eu tinha colocado tudo em uma aba só para simplificar o entendimento da questão. Mas vamos lá...

Em uma aba estará a tabela com o nome de centenas de músicos. Essa aba ficará oculta. Na outra aba estará a minha tabela principal com várias colunas. Essa tabela principal é onde os usuários da planilha vão alimentar os dados.

Mas para simplificar, digamos que a tabela principal tenha cinco colunas:

( A ) Nº do contrato
( B ) Data
( C ) Músico
( D ) Projeto
( E ) Cidade

Cada linha será o registro de um contrato específico. A cada dia novos contratos são inseridos o que também aumenta muito o número de registros nessa tabela.

Respondendo suas perguntas:

1. Você vai precisar digitar o nome de um desses 1000 músicos em que coluna?
R. Na coluna C da tabela principal

2. Quando você for digitar (ou selecionar o nome dos músicos) quer que exista uma dropdow que lhe permita digitar o nome do músico e que os nomes que se assemelhem ao que você está digitando apareçam na lista do DropDown. Certo?
R. Certo.

3. Depois, você quer que ao clicar no nome que você quer, esse nome seja inserido em uma determinada linha de uma determinada coluna. Certo? que linha e coluna seriam essas?
R. Seria na própria célula onde estará o dropdow. Ou seja, em todas as células da coluna C da tabela principal. Sempre que for lançado um novo contrato será preciso informar qual o músico contratado. É nessa hora que preciso que a coisa funcione.

Hoje o que existe é um dropdow que mostra todos os músicos. Se fossem poucos músicos até que funcionaria bem, mas são centenas. E o pior, pelo nome completo. Sendo assim, fica bem inviável. Por isso a necessidade de facilitar a busca digitando apenas parte do nome.

Comentário final: na verdade estou utilizando músicos apenas como exemplo. Na minha planilha de verdade são nomes de empresas (razão social).

Muito obrigado por seu empenho.

 
Postado : 10/08/2016 3:37 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Glaudemir,

OK.

Veja se é assim.

 
Postado : 11/08/2016 8:04 am
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Wagner, acho que estamos quase lá... mas aqui só está exibindo o Zeca Pagodinho, o último nome da lista.

Valeu!

 
Postado : 11/08/2016 8:26 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

OK.

Você tem razão. ao enviar cometi um pequeno erro de lógica. Mas agora está OK.

 
Postado : 11/08/2016 1:34 pm
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Wagner, estou gostando.

Mas citarei dois pontos que podemos tentar melhorar para que fique show:

1. Suponhamos que eu esteja procurando Adriana Calcanhoto. Quando eu começo a digitar me é sugerido Adoniran Barbosa. Eu vejo que a Adriana não existe na lista e clico em "Fechar". O que está acontecendo é que o Adoniram fica lançado na célula, mas eu não queria ele. O ideal seria que, nesse caso, ao clicar em "Fechar" a célula permanecesse vazia.

2. Como está, a busca é sempre em relação à primeira letra do nome.
Não teria como buscar os nomes que contenham o fragmento que eu digitei, independente de onde se encontra no nome? Por exemplo: se eu digitar "Gilberto", então eu pudesse escolher entre Gilberto Gil ou João Gilberto, já que os dois apresentam Gilberto no nome. Porque se eu não souber o primeiro nome do cantor, eu não vou conseguir localizá-lo.

Bem, são apenas sugestões de melhoria. Eu não tenho a menor ideia de como se faz ou mesmo se isso é possível.

Mas parabéns pelo que você já conseguiu. Show de bola. Muito obrigado.

 
Postado : 11/08/2016 2:15 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Glaudemir,

Algumas coisas eu pude resolver... outras, não são possíveis pelo VBA. Não tem as facilidades nos controles do VBA.

 
Postado : 12/08/2016 8:43 am
(@glaudemir)
Posts: 42
Trusted Member
Topic starter
 

Wagner, muito agradecido.

Já ficou muito bom. Valeu!

Glaudemir

 
Postado : 12/08/2016 10:16 am