Notifications
Clear all

DELETAR LINHAS COM FILTRO

3 Posts
1 Usuários
0 Reactions
1,912 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Pessoal..

Tenho uma macro que faz um filtro em determinadas colunas e deleta as informações que não preciso, porem acho que isto está deixando muito lenta....

exemplo na coluna " d " tenho varias informações e a macro faz o seguinte:
Sub FILTRO_DENOMINAÇÃO()

Rows("2:2").Select
Selection.AutoFilter

Selection.AutoFilter Field:=4, Criteria1:="=*ACERT*", Operator:=xlAnd
Rows("3:6000").Select
Selection.Delete Shift:=xlUp

Selection.AutoFilter Field:=4, Criteria1:="=*AVARIA*", Operator:=xlAnd, _
Criteria2:="<>b*"

Gostaria de saber se ha possibilidade de deletar estas linhas coforme algumas condições ou Critério sem utilizar o filtro.

Obrigado

 
Postado : 05/05/2010 6:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu enfrentei algo parecido um tempo atrás.

Para vc acelerar, tem um macete legal. Se possível, antes de rodar a progração, classifique a planilha de modo que as linhas a serem excluidas fiquem juntas. Isso acelera e muito.

Também dá pra excluir sem precisar filtrar, porém é mais demorado ainda. Tem que fazer algo como (tem que testar, talvez falte alguma coisa):

For L=6000 to 3 step:= -1
...If CELLS(L,4) = "*ACERT*" then CELLS(L,4).Delete Shift:=xlUp
Next

PS: É melhor rodar de baixo pra cima, por isso começa em 6000 e desce pra 3.
(considere os pontinhos como tabulação, só pra referência)

 
Postado : 25/05/2010 6:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia

Daniel, obrigado pela dica, estarei verificando..

Valeu..

 
Postado : 26/05/2010 6:14 am