Estava navegando pelo fórum da Microsoft Technet onde me deparei com a postagem de um usuário solicitando ajuda, onde precisa de uma Macro para excluir linhas…
A partir deste contexto decidi trazer a discussão aqui para o site, afinal é algo que certamente que vale abrir discussão com a finalidade de todos aprendermos e nos desenvolvermos.
A postagem trás não só um código simples, como também um código com a possibilidade de excluir a linha com critérios baseados em duas colunas, com o intuito de lhe ajudar assim temos a situação abaixo.
[notification type=”alert-info” close=”false” ]
Tenho uma planilha em Excel 2010 com várias colunas e valores bem variados. Como esta planilha tem 50.000 linhas, fazendo um filtro para selecionar as linhas que tem determinado valor para excluí-las é muito pesado e trava o Excel.
Gostaria de uma macro que fizesse automaticamente isso sem eu precisar fazer os filtros manualmente para excluir essas linhas, é possível?
Ex. 1: Gostaria de excluir todas as linhas que contém o valor “5” na coluna “C”
Ex. 2: Outra macro que verificasse 2 valores, excluir as linhas que contém o valor “2” na coluna “B” e o valor 4 na coluna “E”.
Obrigado
[/notification]
É muito comum termos de excluir linhas em uma quantidade muito grande devido ao processamento que isso exige e também a grande quantidade de filtros que aplicamos esta ser uma tarefa árdua…
Com o VBA as coisas ficam mais fáceis, rápidas, dinâmicas e divertidas, veja abaixo…
O que este código faz? Macro para excluir linhas ?

Ele faz um Loop na “Plan1”, ou seja ele percorre todas as linhas da “Plan1” até identificar a última linha da Planilha e verificando o conteúdo sinalizado na coluna “C”, linha por linha.
Caso o dado da linha que está percorrendo for o 5 como resultado ele exclui a linha, caso contrário a verificação é falsa e a rotina parte para a checagem do dado da próxima linha, é importante destacar que a exclusão será feita sempre que o dado a da linha e coluna forem iguais ao dado que se está validando.
1 – Excluir linhas com determinado valor em determinada coluna.
Sub Exemplo1()
Dim lLin As Long
Application.ScreenUpdating = False
'Altere o nome da planilha abaixo:
With Sheets("Plan1")
For lLin = .Cells(.Rows.Count, "C").End(xlUp).Row To 2 Step -1
If .Cells(lLin, "C") = 5 Then .Rows(lLin).Delete
'Desafoga os processos pendentes do Windows a cada 100 linhas iteradas:
If lLin Mod 100 = 0 Then DoEvents
Next lLin
End With
Application.ScreenUpdating = True
End Sub
CONFIRA TAMBÉM: Como exportar um gráfico como imagem no excel
2 – Excluir linhas com critérios diferentes em duas colunas.
Sub Exemplo2()
Dim lLin As Long
Application.ScreenUpdating = False
'Altere o nome da planilha abaixo:
With Sheets("Plan1")
For lLin = .Cells(.Rows.Count, "B").End(xlUp).Row To 2 Step -1
If .Cells(lLin, "B") = 2 And .Cells(lLin, "E") = 4 Then
.Rows(lLin).Delete
End If
'Desafoga os processos pendentes do Windows a cada 100 linhas iteradas:
If lLin Mod 100 = 0 Then DoEvents
Next lLin
End With
Application.ScreenUpdating = True
End Sub
Em conclusão, este código ajudará muito que precisa fazer a exlusão de linhas por VBA.
Caso você precise de ajuda para implementar este código ou precise de algum código fique a vontade para comentar ou me enviar um e-mail.
Caso você tenha alguma sugestão de postagem ou variação do código acima de tal foma que queira compartilhar, fique a vontade e nos envie!
Um abraço!
Douglas Godoy
Créditos ao código postado pelo amigo Felipe Gualberto no fórum social.technet.microsoft.com

Deixe um comentário