Lentidão em código ...
 
Notifications
Clear all

Lentidão em código de filtro vba

6 Posts
2 Usuários
0 Reactions
1,575 Visualizações
(@cisneiro)
Posts: 0
New Member
Topic starter
 

Galera boa tarde. Tenho uma planilha que contem uma textbox1 para pesquisar números de processos numa determinada coluna,ou seja, conforme entra dados na textbox1 ,ela vai executando o filtro, reduzindo a lista e conforme se apaga caracteres da mesma, a lista vai se expandindo novamente. o problema é que isso está ocorrendo com lentidão. Só funciona rápido quando desabilito os cálculos automáticos com o código
Application.Calculation = xlCalculationManual e Application.Calculation = xlCalculationAutomatic

mas isso me trás problemas, tendo em vista que cada processo corresponde a valores em outra coluna. e acima desta tem um subtotal. que não funciona com com cálculos desabilitados. ai eu tenho que ficar habilitando e desabilitando os cálculos através de um botão de comando.

quem souber como retirar essa lentidão agradeço.

anexei uma cópia do arquivo para melhor entendimento.

Agradeço desde já , muito obrigado a todos

 
Postado : 25/05/2017 10:51 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Cisneiro,

Boa tarde!

Examinei aqui seu código e, quanto à lentidão comentada, creio que isso depende muito do tipo de processador que o micro tenha e também a quantidade de memória RAM disponível. Aqui na minha máquina até que não executou muito lento. Todavia, observei que existe realmente um tempo de espera (tipo um delay) a partir do momento que se vai digitando ou apagando os caracteres da caixa de texto.

Isso ocorre porque você colocou o código dentro do evento Change do textbox. O evento change é acionado toda vez que você digita algo na caixa de texto. Isso torna o processo lento. Eu faria o seguinte: solicitaria, através de inputbox ou de um pequeno formulário a informação ao usuário e processaria após um clique no ENTER, por exemplo. Isso faria apenas uma busca.

 
Postado : 25/05/2017 11:24 am
(@cisneiro)
Posts: 0
New Member
Topic starter
 

Valeu vou tentar isso mesmo. Mas qual seria o código pra fazer a busca através de um formulário? vou inserir um userform com uma textbox e um botão com o nome pesquisar. ai neste botão eu coloco o comando de busca certo?

 
Postado : 25/05/2017 11:49 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Cisneiro,

Segue sugestão.

 
Postado : 25/05/2017 1:23 pm
(@cisneiro)
Posts: 0
New Member
Topic starter
 

seria uma solução wagner, mas nessa listbox do userform2 você conseguiria colocar um código que filtre a lista conforme eu digitasse, similar a textbox de pesquisa lá da planilha?

 
Postado : 25/05/2017 7:56 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Cisneiro,

Bom dia!

Mas o ComboBox já tem essa função: a medida que você vai digitando ele vai buscando a primeira informação compatível com o que você está digitando. E quando vai apagando ele também vai buscando a informação conforme o que você fai fazendo na caixa de texto do Combo.

 
Postado : 26/05/2017 8:42 am