none
Como faço para excluir linhas usando o VBA?

    Pergunta

  • Exemplo> Preciso encontrar um valor  na coluna D e toda vez que esse valor for encontrado a linha deverá ser exluida.

    Como faço?
    quarta-feira, 6 de janeiro de 2010 13:49

Respostas

  • No excel!

    Felizmente consegui resolver essa questão usando o código abaixo:

    Function VAGO()
    Dim IndexRow As Long
    Dim FINALROW As String
    FINALROW = Range("D" & Rows.Count).End(xlUp).Row
    For IndexRow = FINALROW To 2 Step -1
        If Range("D" & IndexRow).Value = "VAGO" And Range("A" & IndexRow).Value <> "" Then _
            Rows(IndexRow).Delete Shift:=xlUp
    Next IndexRow
    Call DDR
    End Function

    Grato!
    • Editado DouglasSantiago quinta-feira, 7 de janeiro de 2010 18:19 agradecimento
    • Marcado como Resposta DouglasSantiago quinta-feira, 7 de janeiro de 2010 18:19
    quinta-feira, 7 de janeiro de 2010 18:18

Todas as Respostas

  • Exemplo> Preciso encontrar um valor  na coluna D e toda vez que esse valor for encontrado a linha deverá ser exluida.

    Como faço?
    Excel or Access?
    Just Be Humble Malange!
    quarta-feira, 6 de janeiro de 2010 20:32
  • No excel!

    Felizmente consegui resolver essa questão usando o código abaixo:

    Function VAGO()
    Dim IndexRow As Long
    Dim FINALROW As String
    FINALROW = Range("D" & Rows.Count).End(xlUp).Row
    For IndexRow = FINALROW To 2 Step -1
        If Range("D" & IndexRow).Value = "VAGO" And Range("A" & IndexRow).Value <> "" Then _
            Rows(IndexRow).Delete Shift:=xlUp
    Next IndexRow
    Call DDR
    End Function

    Grato!
    • Editado DouglasSantiago quinta-feira, 7 de janeiro de 2010 18:19 agradecimento
    • Marcado como Resposta DouglasSantiago quinta-feira, 7 de janeiro de 2010 18:19
    quinta-feira, 7 de janeiro de 2010 18:18
  • Atenção que você está usando um campo que deve ser do tipo Long, como String ... pode dar problemas.
    Jorge Paulino
    Visual Basic em Português
    http://vbtuga.blogspot.com/

    sexta-feira, 8 de janeiro de 2010 21:29
  • Exemplo> Preciso encontrar um valor  na coluna D e toda vez que esse valor for encontrado a linha deverá ser exluida.

    Como faço?

    Segue uma sugestão do Tomás Vásquez, no caso o critério é S, altere a contento:

    Sub Executa()
        MsgBox "Foram excluídas " & ExcluiLinhasPorCriterio(1, 200, 6, "London") & " linhas"
    End Sub
    
    Function ExcluiLinhasPorCriterio(ByVal linhaInicial As Integer, ByVal linhaFinal As Integer, ByVal colunaCriterio As Integer, ByVal criterio As String) As Integer
        Dim linhasExcluidas As Integer
        Dim i As Integer
        linhasExcluidas = 0
        With ActiveSheet
            i = linhaInicial
            While i < linhaFinal
                If CStr(.Cells(i, 4).Value) = "S" Then
                    .Rows(i).Delete
                    linhasExcluidas = linhasExcluidas + 1
                Else
                    i = i + 1
                End If
            Wend
        End With
        ExcluiLinhasPorCriterio = linhasExcluidas
    End Function
    

    jose
    • Sugerido como Resposta LyndaLyon segunda-feira, 12 de novembro de 2012 16:03
    segunda-feira, 11 de janeiro de 2010 21:07
  • Como então eu adicionaria mais um critério de exclusão utilizando o mesmo código? Ex.: Gostaria que além do "S" ele apagasse também a linha que tivesse o valor "G"...... Seria possível através do mesmo código?? E se eu precisar de 5 critérios de exclusão nesse mesmo código seria possível também???? Desde já muito obrigado a quem puder responder. Geraldo Ribeiro.
    quinta-feira, 29 de abril de 2010 18:17
  • Oi, gente!

    Consegui modificar a função do José e excluir duas linhas que continham o critério "B1" na coluna 1. Gostaria de saber o que posso modificar para que sejam excluídas as linhas até o final da planilha. 

    Desde já agradeço!

    segunda-feira, 12 de novembro de 2012 16:03
  • LyndaLyon,

    Você postou num tópico que foi aberto há 2 anos. Quando tiver uma dúvida e encontrar um tópico que seja relacionado com o que deseja fazer, mas que não responda totalmente sua pergunta, crie um novo tópico e poste o link do tópico antigo em sua postagem, descrevendo claramente qual resultado deseja obter.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    segunda-feira, 12 de novembro de 2012 20:55
    Moderador