Macro para Excluir Linhas com Critério

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 ?

Macro Excluir Linha

Macro Excluir Linha

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

 




.

Sobre o Autor

Comentários bacanas...

  1. Claudio Schulz

    Bom dia!!! Parabéns pelo seu trabalho. Gostaria de ajuda de como excluir colunas VAZIAS, eu trabalho com LibreOffice Calc.

  2. Lenon

    Douglas pode me tirar uma duvida, seu código funcionou, mas você pode me mostrar o código para eu excluir da mesma coluna dois valores diferentes, na coluna C, tenho que excluir os itens com KR e ST.

    Obrigado.

  3. REMIRO ANDERSEN TRINDADE

    Olá,
    tenho um grande desafio pela frente.
    Me chamo Remiro. meu conhecimento de Excel é mediano.
    Não sei programar ou fazer macro, mas trabalho com filtros.
    Tenho uma planilha com mais de 150 mil linhas com 30 colunas.
    Preciso excluir as linhas que possuem os mesmos valores constantes de uma coluna existente em outra planilha.
    Como fazer?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *