none
Como remover linhas do excel que contenham determinadas palavras ? RRS feed

  • Pergunta

  • Olá pessoal, alguém consegue ajudar?

    Tenho uma planilha em Excel 2007 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 um tutorial que me ensinasse a excluir as linhas que possuam certas palavras ?

    domingo, 12 de março de 2017 03:23

Respostas

  • Olá Compaqvisx.

    Serve uma rotina em VBA? Acredito que seja uma forma simplificada, você indica qual o título, e a rotina poderá percorrer cada uma das linhas eliminando as ocorrências. 

    Sub EliminaRegistros()

    Dim W As Worksheet
    Dim vRng As Range
    Dim vUltCel As Range
    Dim vString As String

    Set W = Sheets("Planilha1")

    W.Select

    Set vRng = W.UsedRange
    Set vUltCel = W.Cells(W.Rows.Count, 1).End(xlUp)
    Ln = vUltCel.Row
    vString = Empty

    vUltCel.Select

    vString = InputBox("Informe o texto a apagar")

    Do While W.Cells(Ln, 1).Row <= W.Cells(ActiveCell.Row, 1)

        Set vUltCel = W.Cells(W.Rows.Count, 1).End(xlUp)

        If InStr(1, UCase(ActiveCell.Value), UCase(vString), vbTextCompare) > 0 Then

            ActiveCell.EntireRow.Delete

        End If

        ActiveCell.Offset(-1, 0).Select

    Loop

    MsgBox "Limpeza completa"


    End Sub

    Abraços, Trovato

    • Marcado como Resposta compaqvisx domingo, 12 de março de 2017 19:19
    • Não Marcado como Resposta compaqvisx domingo, 12 de março de 2017 21:09
    • Marcado como Resposta compaqvisx terça-feira, 14 de março de 2017 00:00
    domingo, 12 de março de 2017 15:55

Todas as Respostas

  • Se uma dessas linhas que o senhor quer excluir, for uma linha que contém fórmulas de cálculos, quando excluir a linha, o excel irá apresentar erros em cálculos feitos em diversas outras linhas.

    Não é aconselhável criar uma planilha de cálculo tão grande, com tantas linhas, ele pode no futuro dar um erro e parar de funcionar.  

    No meu ex-emprego uma vez o pessoal do setor de contabilidade criou uma planilha de cálculo tão grande em excel, acumulando vários anos de cálculo em um mesmo arquivo, até que num momento o arquivo deu erro, deu problemas e ele parou de funcionar.  A salvação deles foi que existia um backup feito desse arquivo na semana anterior.  Para evitar que o problema voltasse a ocorrer, eu desmembrei esse arquivo em vários arquivos, criei um arquivo para cada ano de cálculo, puxando o valor total de início e valor total de fim, de cada ano, dentro dos arquivos.

    Aconselho o senhor a desmembrar esse arquivo por ano, antes do arquivo apresentar problemas de funcionamento.

     Bom dia


    Ana Mercedes Gauna | MCSE: 098-02070 | Microsoft Partner: 4935985 | Cisco CCNA2 | CRA-RJ: 03-03161 | ABRAWEB: 66132 | ABRACEM: Q27795 | Twitter: @amgauna | Skype: amgauna@outlook.com | www.amgauna.eti.br | anagaunatech.blogspot.com | anagauna.wordpress.com


    • Editado Ana Gauna domingo, 12 de março de 2017 12:37
    domingo, 12 de março de 2017 12:35
  • Não é um arquivo de calculo 
    domingo, 12 de março de 2017 15:20
  • Olá Compaqvisx.

    Serve uma rotina em VBA? Acredito que seja uma forma simplificada, você indica qual o título, e a rotina poderá percorrer cada uma das linhas eliminando as ocorrências. 

    Sub EliminaRegistros()

    Dim W As Worksheet
    Dim vRng As Range
    Dim vUltCel As Range
    Dim vString As String

    Set W = Sheets("Planilha1")

    W.Select

    Set vRng = W.UsedRange
    Set vUltCel = W.Cells(W.Rows.Count, 1).End(xlUp)
    Ln = vUltCel.Row
    vString = Empty

    vUltCel.Select

    vString = InputBox("Informe o texto a apagar")

    Do While W.Cells(Ln, 1).Row <= W.Cells(ActiveCell.Row, 1)

        Set vUltCel = W.Cells(W.Rows.Count, 1).End(xlUp)

        If InStr(1, UCase(ActiveCell.Value), UCase(vString), vbTextCompare) > 0 Then

            ActiveCell.EntireRow.Delete

        End If

        ActiveCell.Offset(-1, 0).Select

    Loop

    MsgBox "Limpeza completa"


    End Sub

    Abraços, Trovato

    • Marcado como Resposta compaqvisx domingo, 12 de março de 2017 19:19
    • Não Marcado como Resposta compaqvisx domingo, 12 de março de 2017 21:09
    • Marcado como Resposta compaqvisx terça-feira, 14 de março de 2017 00:00
    domingo, 12 de março de 2017 15:55
  • Ta dando erro em tempo de execução '1004':

    erro de definição de aplicativo ou de seleção de objeto 


    • Editado compaqvisx domingo, 12 de março de 2017 21:06
    domingo, 12 de março de 2017 21:05