Notifications
Clear all

Auto Filtro com TextBox

12 Posts
2 Usuários
0 Reactions
2,768 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Saudações a todos !!!

Utilizando a combinação do filtro automatico e de textbox para fazer o filtro (Modelo utilizado: http://guiadoexcel.com.br/planilha-com-filtro-automatico), me deparei com a seguinte situação:

Para fazer o filtro de uma coluna que possui texto, posso digitar uma sequencia de caracteres que filtro irá retornar independente da posição que se encontrar no texto (inicio, meio ou fim).

Private Sub A01CODIGO_Change()
   Selection.AutoFilter Field:=8, Criteria1:=CStr("*" + A01CODIGO.Text) + "*"
End Sub

Agora que vem a questão, tenho uma coluna somente com numeros, e gostaria de realizar a mesma busca digitando apenas uma sequencia de caracteres (numeros) e este retornar as linhas que atendam a esta sequencia independente da posição que se encontrar (inicio, meio ou fim). Só que quando inicio a digitação do primeiro numero ele oculta todas as linhas preenchidas. O google até que tentou, mas nao conseguiu me ajudar.... ainda mais que aqui na empresa tem restrição no servidor para sites de blogs.

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

 
Postado : 25/04/2014 8:36 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Enquanto o pessoal não responde, mende seu arquivo modelo.

Att

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

 
Postado : 25/04/2014 9:03 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Segue modelo........

No primeiro textbox o filtro nao realiza pq só há numero !!!
No segundo, esta OK, pois ao concatenar os numeros com um " ' ", torna o conteudo um texto, permitindo o filtro.

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

 
Postado : 25/04/2014 11:13 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Já tentou...?

Private Sub A2Numero_Change()
   Selection.AutoFilter Field:=1, Criteria1:=CStr("*" & A2Numero.Text) & "*"
End Sub

Att

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

 
Postado : 25/04/2014 11:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Opsss...tente assim.

Private Sub A2Numero_Change()
   Selection.AutoFilter Field:=1, Criteria1:=A2Numero.Value
End Sub

Att

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

 
Postado : 25/04/2014 11:33 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Opsss...tente assim.

Private Sub A2Numero_Change()
   Selection.AutoFilter Field:=1, Criteria1:=A2Numero.Value
End Sub

Att

Boa tarde Alexandre,

Testei, mas sem exito !!!
Quando digita o primeiro carácter (numero) ele oculta todas as linhas preenchidas.

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

 
Postado : 25/04/2014 12:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa t arde!!

Aguenta ai, que eu vou testar novamente, pois eu digitei um valor 54801002, dentro da Textbox (ActiveX) de nome "A2Numero"

E foi retornado isso.
54801002 '54801002 IMP 127v 885 515 550

Para mim está funcionando, ao não ser que eu entendi errado.

Att

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

 
Postado : 25/04/2014 12:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Bom para mim está normal ou eu não percebi o que você precisa.

Dessa forma como segue abaixo, quando a Textbox estiver vazia, o filtro será resetado.

Private Sub A2Numero_Change()
   If A2Numero.Value = "" Then
        ActiveSheet.ShowAllData
    Else
        Selection.AutoFilter Field:=1, Criteria1:=A2Numero.Value
   End If
End Sub

Att

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

 
Postado : 25/04/2014 12:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa t arde!!

Aguenta ai, que eu vou testar novamente, pois eu digitei um valor 54801002, dentro da Textbox (ActiveX) de nome "A2Numero"

E foi retornado isso.
54801002 '54801002 IMP 127v 885 515 550

Para mim está funcionando, ao não ser que eu entendi errado.

Att

Entendi.... neste formato funciona, pq busca exatamente o que foi digitado, mas minha necessidade é filtrar todos os items que tenham 610, então deveria retornar o seguinte:

61005001 '61005001 IMP --- 165 20 20
36101 '36101 NAC 0 0 0
61005005 '61005005 IMP --- 0 0 0
61005006 '61005006 IMP --- 0 0 0

Na verdade, o mesmo que ocorre com a coluna C, porem não é logico eu ter de duplicar varias colunas e transformar em texto. No arquivo anexo é só uma pequena parte da planilha e tambem não posso deixa 100% em texto pq algumas colunas possuem formulas e dai teria que transformar texto em numero novamente para que as formulas funcionassem.

Um parenteses, no proprio autofiltro utilizado, ao expandir o menu de filtro e digitar parte do numero na caixa de pesquisa, ele ja faz este processo, independe se for texto ou numero, só precisava que fosse fora !!!!

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

 
Postado : 25/04/2014 12:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Posso estar enganado ou como o Alexandre disse não estar entendendo corretamente a sua demanda, mas pelo que li no inicio a questão é a filtragem por NUMERICOS, e pelo que vi em seu modelo, a filtragem não funciona para o Campo Produto Coluna "B" somente pelo fato de estar indicando o Field:=1 e este se refere a Coluna "A", para ser pela coluna "B" tem de alterar para Field:=2

Private Sub A2Numero_Change()
   Selection.AutoFilter Field:=2, Criteria1:=CStr("*" + A2Numero.Text) + "*"
End Sub

Isto vale tambem para Private Sub A3TextoNumero_Change() que se refere a Coluna "C" então tem de ser Field:=3.

Altere em seu modelo e faça os testes se é isto.

[]s

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

 
Postado : 25/04/2014 5:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

No primeiro textbox o filtro nao realiza pq só há numero !!!
No segundo, esta OK, pois ao concatenar os numeros com um " ' ", torna o conteudo um texto, permitindo o filtro.

Eu me lembro que seu obstáculo seria filtra o que é diferente de String, no caso texto, então foi feito de acordo com o solicitado!

Caso queira criar um auto completar, eu recomendo mudar a estética concernentes a objetos de controles.

Ex: Criar um UserForm com uma TextBox etc, para poder implementar sua necessidade.

Att

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

 
Postado : 26/04/2014 11:00 am
(@bbuzaneli)
Posts: 1
New Member
 

Bom dia a todos!

Estou com uma situação parecida à do colega volnei.p ...

No caso, quando se trata da busca de células no formato "texto", o comando conforme abaixo funciona:

"Private Sub [**nome**]_Change()
Selection.AutoFilter Field:=[numero_filtro], Criteria1:=CStr("*" + [**nome**].Text) + "*"
End Sub"

Porém, eu precisaria que o auto filtro no textbox funcionasse da mesma maneira, com células em número. Para que o retorno da busca fosse igual ao filtro convencional, ou seja, quando digitasse os números de busca, fossem retornados todos os itens que contivessem o número (ele fosse buscando até chegar ao número exato).

Já tentei utilizar alguns comandos, mas nenhum deu certo. Alguém saberia nos ajudar? Estou enviando um arquivo modelo.

Obrigado!

 
Postado : 24/05/2016 7:15 am