Página 1 de 1

LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Sex Jun 12, 2020 9:07 pm
por Wellington Rodrigues
Boa noite a todos, ao carregar um formulário de funcionários tenho 03 (três) textbox que se encarregam do filtro numa listbox dessas pessoas. A primeira textbox é o nome completo do servidor, assim que digito a primeira letra do nome vem listado todos os servidores que começam com a aquela letra, digitando a segunda letra do nome fica mais filtrada ainda, pois só aparece os nomes que começam com aquelas duas letras iniciais e assim por diante... O segundo textbox é o cargo do funcionário, funciona igual ao textbox nome. O problema é o terceiro textbox que corresponde à matrícula. Digitada no Excel, tem esse número total de dígitos, exemplo: 101756188, quando digito em seu textbox, o primeiro, ou o primeiro e o segundo, ou primeiro, segundo e terceiro dígitos e assim por diante, o listbox fica vazio, não filtra, mas quando coloco todos os dígitos certos e com a quantidade certa aí aparece o servidor com todos os seus dados correspondentes. Se existir possibilidade, gostaria que esse textbox matrícula fosse executado da mesma forma dos textbox: nome e cargo, conforme citado acima. Desde já, agradeço a atenção!

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Sáb Jun 13, 2020 9:52 am
por Reinaldo
Muito provavelmente, esse campo é numérico. O funcionamento descrito ocorre nos campos string/texto; números são considerados por inteiro tipo maior 1, menor 99 , igual à1234.....

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Sáb Jun 13, 2020 2:43 pm
por Wellington Rodrigues
Boa tarde, Reinaldo! Já formatei as células que são correspondentes aos valores da matrícula para “texto” e também tentei converter o que eu digito no textbox matrícula para string com a função CStr(). Não tive êxito. Fiquei com os mesmos resultados de antes.

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Sáb Jun 13, 2020 3:06 pm
por Reinaldo
Quero crer que está a pesquisar em uma planilha excel. Nesse caso não há uma "definição" direta do tipo de dado da coluna, mas sim uma interpretação tácita (creio eu) pelo editor VBE à partir do dado inicial.
Experimente nos primeiros registros dessa coluna incluir o caractere " ' " a esquerda do numero (de 100 para '100)

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Sáb Jun 13, 2020 4:48 pm
por Wellington Rodrigues
Até tentei colocar caracteres alfabéticos, antes da recomendação da sua última postagem: "Experimente nos primeiros registros dessa coluna incluir o carácter " ' " a esquerda do numero (de 100 para '100)", mas também não tive nenhum sucesso. Eu poderia enviar o arquivo em questão para análise?

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Dom Jun 14, 2020 9:49 am
por Reinaldo
Utilize a ferramenta de upload aqui no fórum, poste seu arquivo ou modelo similar representativo do original, com dados fictícios sempre que necessário

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Dom Jun 14, 2020 3:55 pm
por Wellington Rodrigues
Boa tarde, Reinaldo! A planilha 2 está congelada na vertical, o botão de comando que chama o formulário "Inserir dias" planilha 2, planilha 3 está o filtro. Desculpe os detalhes, é só para facilitar. Obrigado!

Re: LISTBOX só filtra quando é colocado todos os dígitos de um número na TEXTBOX

Enviado: Ter Jun 16, 2020 6:32 pm
por Reinaldo
Estás utilizando filtro avançado, não tenho certeza,mas aparentemente,o mesmo utiliza mecanismos internos para definição de tipo/conteúdo dos dados.
Provavelmente a utilização de filtros diretamente seja melhor.Vou tentar,na medida do possivel, mandar uma sugestão, enquanot isso de uma olhada (entre tantos outros) alguns exemplos/modelos

https://github.com/Tomamais/ModeloCadastro_VBA/wiki
https://www.tomasvasquez.com.br/blog/mi ... o-listbox/
viewtopic.php?t=5051
http://www.planilhando.com.br/forum/vie ... 10&t=27790