sexta-feira, 7 de setembro de 2018

Desafio n.º 2 - VBA - Excluir linhas conforme um critério específico

Bom dia amigos,

Hoje temos um grande desafio para solucionar. Temos a seguinte situação-problema: Em uma tabela possuo linhas que quero excluir. Mas não é tão simples assim. Elas devem ser excluídas de acordo com um determinado critério, ou seja, conforme uma palavra específica que vou escolher. Para tanto digite a seguinte tabela:


Depois, insira o seguinte código em um módulo VBA:


Sub Excluir_Linhas()

Dim contador As Long
Dim ultimalinha As Long
Dim Plan As Worksheet
Dim Atual As Workbook
Dim criterio As String

Set Atual = ActiveWorkbook
Set Plan = Atual.Sheets("DESAFIO2")
ultimalinha = Plan.Cells(Rows.Count, "a").End(xlUp).Row
criterio = InputBox("Informe o carro que será excluído:", "CRITÉRIO")

contador = 1

While contador < ultimalinha + 1

    If Plan.Cells(contador, 2).Value = criterio Then
                
                Plan.Rows(contador).Delete
                Else
                contador = contador + 1

    End If

Wend
   
End Sub


Outra forma:

Sub Excluir_Linhas()

Dim contador As Long
Dim ultimalinha As Long
Dim Plan As Worksheet
Dim Atual As Workbook
Dim estado As String

Application.ScreenUpdating = False


Set Atual = ActiveWorkbook
Set Plan = Atual.Sheets("DESAFIO2")
ultimalinha = Plan.Cells(Rows.Count, "a").End(xlUp).Row
criterio = InputBox("Informe o Estado que será excluído:", "CRITÉRIO")

For contador = ultimalinha To 1 Step -1

    If Plan.Cells(contador, 2).Value = criterio Then
                
                Plan.Rows(contador).Delete
                
    End If

Next

Application.ScreenUpdating = True
   

End Sub

Agora é só criar um botão, atribuir a macro e rodar o seu código. Ele vai excluir as linhas desejadas de acordo com a informação digitada na caixa de entrada (InputBox). Atenção: a palavra escolhida deve estar na coluna "B".

Um forte abraço!