Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#55184
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
Você não está autorizado a ver ou baixar esse anexo.
#55193
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.
Você não está autorizado a ver ou baixar esse anexo.
#55195
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
#55237
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
#55238
Vou ver o que consigo fazer por aqui assim que tiver algo envio-lhe :D
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord