Página 1 de 1

Como filtrar dados com Userform e uma Combobox

Enviado: 25 Mai 2020 às 05:27
por CSoares
Bom Dia
Gostaria de fazer um formulário de cadastro com o userform e após pesquisar na internet como se faz, consegui reunir exemplos de quase tudo aquilo que necessito, menos como se faz uma pesquisa com um filtro automático.
No exemplo que coloco em anexo, o combobox2 do titulo, lista-me apenas todos os nomes.
Se iniciar a escrever a palavra "car", gostava que automaticamente me abrisse a lista (na própria combobox) com todos os nomes que fossem correspondendo à palavra que estou a digitar letra a letra, sem ter de ir à seta do lado direito, para poupar tempo na inserção de centenas de registos.
Isto faz-se com o combobox? Como posso fazer?
Obrigado pela ajuda.

PS: Procurei aqui no forum por "filtro combobox" mas não encontrei este tipo de exemplo

Re: Como filtrar dados com Userform e uma Combobox

Enviado: 25 Mai 2020 às 07:59
por AfonsoMira
Bom dia,

Adicione a seguinte macro no evento change da combo box :
Código: Selecionar todos
nome = ComboBox2.Text

Sheets("Cadastro_Materiais").Select

ultima_linha = Range("A1000").End(xlUp).Row

For i = 2 To ultima_linha

If Cells(i, 5).Value = nome Then

linha = i

i = i + ultima_linha

End If

Next i

TextBox1.Text = Cells(linha, 1)
        TextBox2.Text = Cells(linha, 2)
        TextBox3.Text = Cells(linha, 3)
        TextBox14.Text = Cells(linha, 4)
        TextBox4.Text = Cells(linha, 5)
        TextBox10.Text = Cells(linha, 6)
        TextBox11.Text = Cells(linha, 7)
        TextBox12.Text = Cells(linha, 8)
        TextBox13.Text = Cells(linha, 9)
        TextBox5.Text = Cells(linha, 10)
        TextBox7.Text = Cells(linha, 11)
        TextBox8.Text = Cells(linha, 12)
        TextBox9.Text = Cells(linha, 13)
        TextBox6.Text = Cells(linha, 14)

Cada vez que se altera o valor da combobox ele verifica em que linha está esse nome a vai preencher a restante informação com base nessa linha.

Espero que tenha ajudado.

Em anexo ficheiro já com esta modificação.

Como filtrar dados com Userform e uma Combobox

Enviado: 25 Mai 2020 às 10:11
por CSoares
Boa tarde Afonso

Eu preciso de ajuda precisamente antes de ele ir preencher os dados com o nome seleccionado, ou seja, imaginando que tenho 700 nomes de pessoas, quando eu precisar de procurar uma pessoa chamada "Rui", terei de percorrer toda a lista de nome em busca desse nome.
Para evitar isto, já vi alguns casos, em que assim que se começa a escrever 1 letra, ele abre logo a lista pendente e vai filtrando os nomes que correspondem ao que a pessoa está a escrever, até chegar a uma lista pequena e fácil de encontrar a pessoa certa.
Tenho exemplos de como se faz isto com uma Validação de Dados, mas não consigo fazer o mesmo num userform
Espero me ter explicado bem, obrigado

Como filtrar dados com Userform e uma Combobox

Enviado: 25 Mai 2020 às 10:55
por AfonsoMira

Como filtrar dados com Userform e uma Combobox

Enviado: 26 Mai 2020 às 11:37
por CSoares
Olá Afonso

Na verdade é isto mesmo que necessito, mas neste exemplo ele apenas procura por uma letra e não à medida que formos escrevendo.
Encontro outros exemplos que fazem isto, mas com a ajuda de uma lista de texto à parte, que no meu caso, dava mais jeito ser apenas com a combobox.
Estou a tentar procurar maneira de alterar o codigo deste video, mas não é fácil :-)
Obrigado

Como filtrar dados com Userform e uma Combobox

Enviado: 26 Mai 2020 às 11:48
por AfonsoMira
Vou ver o que consigo fazer por aqui assim que tiver algo envio-lhe :D