Lista Suspensa (bus...
 
Notifications
Clear all

Lista Suspensa (busca dinâmica)

6 Posts
2 Usuários
0 Reactions
2,573 Visualizações
(@victor-marassi)
Posts: 81
Trusted Member
Topic starter
 

Boa noite,

Estou utilizando uma lista suspensa para selecionar um determinado cliente de um banco de dados. O problema é que o banco de dados tem mais de 400 clientes, sendo assim, fica complicada a busca do cliente pelo list box.

tirando a possibilidade de utilizar PROCV para buscar o cliente por código ou por outro atributo qualquer, eu poderia ir digitando o nome do cliente ou alguma letra e a lista suspensa começar a filtrar os nomes possíveis automaticamente?

Desde já agradeço!

 
Postado : 23/01/2013 5:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Esta é uma adaptação de um modelo que já percorreu varios Foruns, inclusive no Planilhando, reduzi só para a funcionalidade de digitar no textbox, veja se ajuda :

Veja tambem os exemplos que o colega Reinaldo postou no tópico abaixo, só depois que respondi que vi o post dele, são ótimos modelos.
Adaptação em Controle de Ferramentas
viewtopic.php?f=10&t=6732&start=20

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/01/2013 7:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pode também ser feito com um ComboBox dinâmico.
Digamos que a lista de nomes esteja na Planilha 1 e comece na célula A2 e sempre vc tem que acrescentar mais nomes.
Click na guia fórmulas;
Click em definir nomes;
Na caixa Nome digite: Lista;
Na caixa Refere-se a digite: =DESLOC(Plan1!$A$2;0;0;CONT.VALORES(Plan1!$A:$A));
Click na guia Desenvolverdor;
Click em inserir;
Click em Controles ActiveX;
Click em Caixa de Combinação e a desenhe com o tamanho que desejar;
Click em Visaul Basic e copie e cole o código abaixo:
Private Sub Worksheet _Change(By Val Target As Range)
ActiveSheet.ComboBox1.ListFillRange = “Lista”
End Sub

[]Doni

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2013 8:13 am
(@victor-marassi)
Posts: 81
Trusted Member
Topic starter
 

Mauro,

Ocorreu um erro quando clico em CONSULTAR (antes de aparecer o FORM PRINCIPAL);

No formulário do Reinaldo, como faço para clicar no nome escolhido no list box e ele aparecer na célula?

Dino,

Não consegui fazer com que a ComboBox aparecesse a lista dos clientes, ela fica em branco. A própria fórmula o resultado dela é vazio.
De qualquer forma, com a sua ideia vc está supondo que a pessoa digite a letra no combobox e ele filtre a "Lista"?

Muito obrigado desde já!

*Desculpe o pouco conhecimento em vba.

 
Postado : 24/01/2013 3:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Na guia Desenvolvedor ative Modo de Design e Click com o botão direito do mouse sobre a ComboBox, Click sobre propriedades e na guia que vai aparecer, procure ListFillRange, digite Lista. Desative o Modo de Design, a partir dai os nomes vão aparecer na ComboBox.
Nesse caso ela ira apenas buscar o nome na lista, não efetuará filtro.
Caso deseje utilizar o nome que apareceu na ComboBox vc deve linkar ela com uma célula em LinkedCell.

Doni

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2013 6:35 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Doni, você tem de registrar a biblioteca referente ao controle Listview (mscomctl32.ocx), vejanoslinks abaixo :

Classe não registrada
viewtopic.php?t=6786&p=35849

e

Habilitar o Controle ListView
http://www.tomasvasquez.com.br/forum/vi ... QHS2h0mfQQ

A rotina que preenche os Textbox estão no Evento_Click do ListView, natelado VBA no Form de dois cliques no controle e verá a rotina, é só adaptar uma vez que os modelos do Reinaldo não teem Textbox.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/01/2013 7:40 pm