Delete rows that in the column contain a certain value

Asked

Viewed 87 times

1

Hello everyone I’m trying to find a quick way to the following process, my base has 68000 lines all filled, and as time goes by it increases, in my column G has the names of the cities, I made a loop to find the name of the city I want to delete the line, Since there are many lines to search my code becomes too slow to finish the process, would you have a faster way to do that process? below the code I am using.

Dim wwe As Worksheet
Dim Linha As Long
Dim ultima As Long

Set w = ThisWorkbook.Worksheets("Limpar")
    ultima = w.UsedRange.Rows.Count
    
With w
    For Linha = ultima To 2 Step -1
If Cells(Linha, "G") = "ABELARDO LUZ" Or Cells(Linha, "G") = "ALAGOINHAS" Or Cells(Linha, "G") = "ALEXÂNIA" Or Cells(Linha, "G") = "ALFENAS" Or Cells(Linha, "G") = "ALMIRANTE TAMANDARÉ" Or Cells(Linha, "G") = "ALTAMIRA DO PARANÁ" Or Cells(Linha, "G") = "ALTO GARÇAS" Or Cells(Linha, "G") = "ALVORADA" Or Cells(Linha, "G") = "ANÁPOLIS" Or Cells(Linha, "G") = "ANTONINA" Or Cells(Linha, "G") = "APARECIDA DE GOIÂNIA" Or Cells(Linha, "G") = "ARACAJU" Or Cells(Linha, "G") = "ARACRUZ" Or Cells(Linha, "G") = "ARAPIRACA" Or Cells(Linha, "G") = "ARAPORÃ" Or _
    Cells(Linha, "G") = "ARARAQUARA" Or Cells(Linha, "G") = "ARAUCÁRIA" Or Cells(Linha, "G") = "ARUJÁ" Or Cells(Linha, "G") = "ASSIS CHATEAUBRIAND" Or Cells(Linha, "G") = "ATIBAIA" Or Cells(Linha, "G") = "BALNEÁRIO CAMBORIÚ" Or Cells(Linha, "G") = "BANDEIRANTES" Or Cells(Linha, "G") = "BARBACENA" Or Cells(Linha, "G") = "BARRA MANSA" Or Cells(Linha, "G") = "BARUERI" Or Cells(Linha, "G") = "BAURU" Or Cells(Linha, "G") = "BELÉM" Or Cells(Linha, "G") = "BELO HORIZONTE" Or Cells(Linha, "G") = "BENTO GONÇALVES" Or Cells(Linha, "G") = "BETIM" Or _
    Cells(Linha, "G") = "BIGUAÇU" Or Cells(Linha, "G") = "BITURUNA" Or Cells(Linha, "G") = "BLUMENAU" Or Cells(Linha, "G") = "BOTUCATU" Or Cells(Linha, "G") = "BRASILIA" Or Cells(Linha, "G") = "BRASÍLIA" Or Cells(Linha, "G") = "BRUMADINHO" Or Cells(Linha, "G") = "BRUMADO" Or Cells(Linha, "G") = "BRUSQUE" Or Cells(Linha, "G") = "CABEDELO" Or Cells(Linha, "G") = "CABO FRIO" Or Cells(Linha, "G") = "CACHOEIRA DO SUL" Or Cells(Linha, "G") = "CACHOEIRINHA" Or Cells(Linha, "G") = "CACHOEIRO DE ITAPEMIRIM" Or Cells(Linha, "G") = "CACULÉ" Or _
    Cells(Linha, "G") = "CAJATI" Or Cells(Linha, "G") = "CALDAS NOVAS" Or Cells(Linha, "G") = "CAMACAN" Or Cells(Linha, "G") = "CAMAÇARI" Or Cells(Linha, "G") = "CAMARAGIBE" Or Cells(Linha, "G") = "CAMBORIÚ" Or Cells(Linha, "G") = "CAMBUÍ" Or Cells(Linha, "G") = "CAMPINA GRANDE" Or Cells(Linha, "G") = "CAMPINA GRANDE DO SUL" Or Cells(Linha, "G") = "CAMPINAS" Or Cells(Linha, "G") = "CAMPO BOM" Or Cells(Linha, "G") = "CAMPO GRANDE" Or Cells(Linha, "G") = "CAMPO LARGO" Or Cells(Linha, "G") = "CAMPOS DOS GOYTACAZES" Or Cells(Linha, "G") = "CAMPOS NOVOS" Or _
    Cells(Linha, "G") = "CANGUARETAMA" Or Cells(Linha, "G") = "CANOAS" Or Cells(Linha, "G") = "CAPÃO ALTO" Or Cells(Linha, "G") = "CAPITÃO LEÔNIDAS MARQUES" Or Cells(Linha, "G") = "CARIACICA" Or Cells(Linha, "G") = "CARUARU" Or Cells(Linha, "G") = "CAUCAIA" Or Cells(Linha, "G") = "CAXIAS DO SUL" Or Cells(Linha, "G") = "CÉU AZUL" Or Cells(Linha, "G") = "CHAPECÓ" Or Cells(Linha, "G") = "CIDADE OCIDENTAL" Or Cells(Linha, "G") = "COLATINA" Or Cells(Linha, "G") = "COLINAS" Or Cells(Linha, "G") = "COLOMBO" Or Cells(Linha, "G") = "CONCEIÇÃO DO JACUÍPE" Or _
    Cells(Linha, "G") = "CONCHAS" Or Cells(Linha, "G") = "CONCÓRDIA" Or Cells(Linha, "G") = "CONSELHEIRO LAFAIETE" Or Cells(Linha, "G") = "CONSELHEIRO PENA" Or Cells(Linha, "G") = "CONTAGEM" Or Cells(Linha, "G") = "CORONEL FABRICIANO" Or Cells(Linha, "G") = "COTIA" Or Cells(Linha, "G") = "CRICIÚMA" Or Cells(Linha, "G") = "CUIABÁ" Or Cells(Linha, "G") = "CURITIBA" Or Cells(Linha, "G") = "DIVINÓPOLIS" Or Cells(Linha, "G") = "DOIS VIZINHOS" Or Cells(Linha, "G") = "DOURADOS" Or Cells(Linha, "G") = "DOUTOR ULYSSES" Or Cells(Linha, "G") = "DUQUE DE CAXIAS" Or _
    Cells(Linha, "G") = "ENTRE RIOS DO SUL" Or Cells(Linha, "G") = "ERECHIM" Or Cells(Linha, "G") = "ESTÂNCIA VELHA" Or Cells(Linha, "G") = "ESTEIO" Or Cells(Linha, "G") = "EUNÁPOLIS" Or Cells(Linha, "G") = "FARROUPILHA" Or Cells(Linha, "G") = "FAZENDA RIO GRANDE" Or Cells(Linha, "G") = "FEIRA DE SANTANA" Or Cells(Linha, "G") = "FLORIANÓPOLIS" Or Cells(Linha, "G") = "FORTALEZA" Or Cells(Linha, "G") = "FRANCISCO SÁ" Or Cells(Linha, "G") = "GANDU" Or Cells(Linha, "G") = "GARANHUNS" Or Cells(Linha, "G") = "GASPAR" Or Cells(Linha, "G") = "GENERAL CÂMARA" Or _
    Cells(Linha, "G") = "GOIÂNIA" Or Cells(Linha, "G") = "GOIOERÊ" Or Cells(Linha, "G") = "GOVERNADOR VALADARES" Or Cells(Linha, "G") = "GRAVATÁ" Or Cells(Linha, "G") = "GRAVATAÍ" Or Cells(Linha, "G") = "GUAÍBA" Or Cells(Linha, "G") = "GUAÍRA" Or Cells(Linha, "G") = "GUAPORÉ" Or Cells(Linha, "G") = "GUARAPARI" Or Cells(Linha, "G") = "GUARAPUAVA" Or Cells(Linha, "G") = "GUARAREMA" Or Cells(Linha, "G") = "GUARULHOS" Or Cells(Linha, "G") = "GURINHÉM" Or Cells(Linha, "G") = "IÇARA" Or Cells(Linha, "G") = "IGUATU" Or Cells(Linha, "G") = "IJUÍ" Or _
    Cells(Linha, "G") = "INDAIAL" Or Cells(Linha, "G") = "INDAIATUBA" Or Cells(Linha, "G") = "INDIARA" Or Cells(Linha, "G") = "IPATINGA" Or Cells(Linha, "G") = "IRAMAIA" Or Cells(Linha, "G") = "ITABAIANA" Or Cells(Linha, "G") = "ITABAIANINHA" Or Cells(Linha, "G") = "ITABUNA" Or Cells(Linha, "G") = "ITAJAÍ" Or Cells(Linha, "G") = "ITAMARAJU" Or Cells(Linha, "G") = "ITAPEVA" Or Cells(Linha, "G") = "ITAQUIRAÍ" Or Cells(Linha, "G") = "ITAÚNA" Or Cells(Linha, "G") = "ITU" Or Cells(Linha, "G") = "ITUMBIARA" Or Cells(Linha, "G") = "IVAIPORÃ" Or Cells(Linha, "G") = "JABOATÃO DOS GUARARAPES" Or _
    Cells(Linha, "G") = "JABOTICABA" Or Cells(Linha, "G") = "JACIARA" Or Cells(Linha, "G") = "JARAGUÁ DO SUL" Or Cells(Linha, "G") = "JATAÍ" Or Cells(Linha, "G") = "JOAÇABA" Or Cells(Linha, "G") = "JOÃO PESSOA" Or Cells(Linha, "G") = "JOINVILLE" Or Cells(Linha, "G") = "JUIZ DE FORA" Or Cells(Linha, "G") = "JUNDIAÍ" Or Cells(Linha, "G") = "JUQUITIBA" Or Cells(Linha, "G") = "JUTI" Or Cells(Linha, "G") = "LAGES" Or Cells(Linha, "G") = "LAGUNA" Or Cells(Linha, "G") = "LAJEADO" Or Cells(Linha, "G") = "LAPA" Or Cells(Linha, "G") = "LAURO DE FREITAS" Or Cells(Linha, "G") = "LINHARES" Or _
    Cells(Linha, "G") = "LORENA" Or Cells(Linha, "G") = "LUZIÂNIA" Or Cells(Linha, "G") = "MACAÉ" Or Cells(Linha, "G") = "MACEIÓ" Or Cells(Linha, "G") = "MAFRA" Or Cells(Linha, "G") = "MANAUS" Or Cells(Linha, "G") = "MANOEL RIBAS" Or Cells(Linha, "G") = "MARACANAÚ" Or Cells(Linha, "G") = "MARILÂNDIA DO SUL" Or Cells(Linha, "G") = "MAUÁ" Or Cells(Linha, "G") = "MINEIROS" Or Cells(Linha, "G") = "MOEDA" Or Cells(Linha, "G") = "MOGI DAS CRUZES" Or Cells(Linha, "G") = "MONTE CASTELO" Or Cells(Linha, "G") = "MONTENEGRO" Or Cells(Linha, "G") = "MORRINHOS" Or Cells(Linha, "G") = "NATAL" Or _
    Cells(Linha, "G") = "NAVEGANTES" Or Cells(Linha, "G") = "NILÓPOLIS" Or Cells(Linha, "G") = "NITERÓI" Or Cells(Linha, "G") = "NOVA ALVORADA DO SUL" Or Cells(Linha, "G") = "NOVA IGUAÇU" Or Cells(Linha, "G") = "NOVA LIMA" Or Cells(Linha, "G") = "NOVA VENEZA" Or Cells(Linha, "G") = "NOVO HAMBURGO" Or Cells(Linha, "G") = "OLINDA" Or Cells(Linha, "G") = "OSASCO" Or Cells(Linha, "G") = "OSÓRIO" Or Cells(Linha, "G") = "PALHOÇA" Or Cells(Linha, "G") = "PALMARES" Or Cells(Linha, "G") = "PALMAS" Or Cells(Linha, "G") = "PARÁ DE MINAS" Or Cells(Linha, "G") = "PARACATU" Or Cells(Linha, "G") = "PARANAGUÁ" Or _
    Cells(Linha, "G") = "PASSO FUNDO" Or Cells(Linha, "G") = "PASSOS" Or Cells(Linha, "G") = "PATOS DE MINAS" Or Cells(Linha, "G") = "PAULISTA" Or Cells(Linha, "G") = "PELOTAS" Or Cells(Linha, "G") = "PETROLINA" Or Cells(Linha, "G") = "PICADA CAFÉ" Or Cells(Linha, "G") = "PINHAIS" Or Cells(Linha, "G") = "PIRACICABA" Or Cells(Linha, "G") = "POÇO DAS ANTAS" Or Cells(Linha, "G") = "POÇOS DE CALDAS" Or Cells(Linha, "G") = "PONTA GROSSA" Or Cells(Linha, "G") = "PONTE ALTA" Or Cells(Linha, "G") = "PORTO ALEGRE" Or Cells(Linha, "G") = "PORTO VELHO" Or Cells(Linha, "G") = "POUSO ALEGRE" Or _
    Cells(Linha, "G") = "PRAIA GRANDE" Or Cells(Linha, "G") = "PROTÁSIO ALVES" Or Cells(Linha, "G") = "QUATRO BARRAS" Or Cells(Linha, "G") = "QUEDAS DO IGUAÇU" Or Cells(Linha, "G") = "RECIFE" Or Cells(Linha, "G") = "RIBEIRÃO PRETO" Or Cells(Linha, "G") = "RIO BONITO" Or Cells(Linha, "G") = "RIO BRANCO" Or Cells(Linha, "G") = "RIO DAS OSTRAS" Or Cells(Linha, "G") = "RIO DE JANEIRO" Or Cells(Linha, "G") = "RIO GRANDE" Or Cells(Linha, "G") = "RIO LARGO" Or Cells(Linha, "G") = "RIO PRETO DA EVA" Or Cells(Linha, "G") = "RIO VERDE" Or Cells(Linha, "G") = "RIO VERDE DE MATO GROSSO" Or Cells(Linha, "G") = "RONDONÓPOLIS" Or _
    Cells(Linha, "G") = "SALVADOR" Or Cells(Linha, "G") = "SANTA BÁRBARA" Or Cells(Linha, "G") = "SANTA CECÍLIA" Or Cells(Linha, "G") = "SANTA CRUZ DO SUL" Or Cells(Linha, "G") = "SANTA MARIA" Or Cells(Linha, "G") = "SANTA RITA" Or Cells(Linha, "G") = "SANTA ROSA" Or Cells(Linha, "G") = "SANTO ANDRE" Or Cells(Linha, "G") = "SANTO ANDRÉ" Or Cells(Linha, "G") = "SANTO ÂNGELO" Or Cells(Linha, "G") = "SANTO ANTÔNIO DE JESUS" Or Cells(Linha, "G") = "SANTOS" Or Cells(Linha, "G") = "SÃO BENTO DO SUL" Or Cells(Linha, "G") = "SÃO BERNARDO DO CAMPO" Or Cells(Linha, "G") = "SÃO CRISTOVÃO DO SUL" Or Cells(Linha, "G") = "SÃO DOMINGOS" Or _
    Cells(Linha, "G") = "SÃO FRANCISCO DE PAULA" Or Cells(Linha, "G") = "SÃO GONÇALO" Or Cells(Linha, "G") = "SÃO GONÇALO DOS CAMPOS" Or Cells(Linha, "G") = "SÃO JOAQUIM DA BARRA" Or Cells(Linha, "G") = "SÃO JOSÉ" Or Cells(Linha, "G") = "SÃO JOSÉ DOS CAMPOS" Or Cells(Linha, "G") = "SÃO JOSÉ DOS PINHAIS" Or Cells(Linha, "G") = "SÃO LEOPOLDO" Or Cells(Linha, "G") = "SÃO LUÍS" Or Cells(Linha, "G") = "SÃO MATEUS DO SUL" Or Cells(Linha, "G") = "SAO PAULO" Or Cells(Linha, "G") = "SÃO PAULO" Or Cells(Linha, "G") = "SÃO VICENTE" Or Cells(Linha, "G") = "SAPIRANGA" Or Cells(Linha, "G") = "SAPUCAIA DO SUL" Or _
    Cells(Linha, "G") = "SENADOR CANEDO" Or Cells(Linha, "G") = "SERRA" Or Cells(Linha, "G") = "SETE LAGOAS" Or Cells(Linha, "G") = "SIMÕES FILHO" Or Cells(Linha, "G") = "SINOP" Or Cells(Linha, "G") = "SOROCABA" Or Cells(Linha, "G") = "SOUSA" Or Cells(Linha, "G") = "SUZANO" Or Cells(Linha, "G") = "TAGUATINGA" Or Cells(Linha, "G") = "TEIXEIRA DE FREITAS" Or Cells(Linha, "G") = "TERESINA" Or Cells(Linha, "G") = "TIMÓTEO" Or Cells(Linha, "G") = "TORRES" Or Cells(Linha, "G") = "TRÊS DE MAIO" Or Cells(Linha, "G") = "TRÊS PONTAS" Or Cells(Linha, "G") = "TRINDADE" Or Cells(Linha, "G") = "TRIUNFO" Or Cells(Linha, "G") = "TUBARÃO" Or _
    Cells(Linha, "G") = "UBERABA" Or Cells(Linha, "G") = "UBERLÂNDIA" Or Cells(Linha, "G") = "URUGUAIANA" Or Cells(Linha, "G") = "VACARIA" Or Cells(Linha, "G") = "VALPARAÍSO DE GOIÁS" Or Cells(Linha, "G") = "VARGINHA" Or Cells(Linha, "G") = "VÁRZEA GRANDE" Or Cells(Linha, "G") = "VÁRZEA PAULISTA" Or Cells(Linha, "G") = "VIAMÃO" Or Cells(Linha, "G") = "VIÇOSA" Or Cells(Linha, "G") = "VILA VELHA" Or Cells(Linha, "G") = "VITÓRIA" Or Cells(Linha, "G") = "VITÓRIA DA CONQUISTA" Or Cells(Linha, "G") = "VITÓRIA DE SANTO ANTÃO" Or Cells(Linha, "G") = "VOLTA REDONDA" Or Cells(Linha, "G") = "VOTORANTIM" Or Cells(Linha, "G") = "XANXERÊ" _
    Then
    .Rows(Linha).Delete
        End If
    Next Linha
End With
  • 1

    Can you sort the data? If you can sort by city alphabetical order, it gets MUCH faster and easy to delete.

  • yes could, I’ll take the test thanks for the tip

2 answers

1


Follow here my code suggestion to help. I tested with a spreadsheet with 70 thousand lines and ran in 3 minutes.

It should be noted that I made this code on the assumption that it is necessary to delete the cities you mentioned above and keep other lines referring to other eventual cities. I say this because, if it were the case to delete the entire list from the spreadsheet, it is easier to delete everything at once.

To work, you need to create an extra tab (which, here, I called "List") with the names of the cities that need to be deleted in each cell (image below) written exactly as it is in your code, it is possible to remove and add cities to this list without interfering with the code.

Aba Lista

The lines that contain the values to be deleted are in the Base tab (image below, with random values to serve as an example), considering that the list of cities is in column G.

Aba Base

At last, stay here:

Sub Remover_Cidades()

Dim W           As Worksheet
Dim WL          As Worksheet
Dim A           As Integer
Dim UltCel      As Range

Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Nomeia e seleciona as abas Base e Lista
Set W = Sheets("Base")

Set WL = Sheets("Lista")
WL.Select
WL.Range("A1").Select

'Mapeia qual é a última célula preenchida na aba Lista
Set UltCel = WL.Cells(WL.Rows.Count, 1).End(xlUp)

'Atribui o valor 1 ao contador que irá percorrer os valores na aba lista
A = 1

'Filtra os nomes das cidades na planilha Base de acordo com cada célula da Lista e exclui a linha
Do While A <= UltCel.Row
    
    W.Select
    W.Range("A$1:G$1048576").AutoFilter Field:=7, Criteria1:=WL.Range("A" & A).Value
    W.Range("A$2:G$1048576").Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.EntireRow.Delete
    W.Range("$A$1:$G$1048576").AutoFilter Field:=7
    W.Range("A1").Select
        
    A = A + 1

Loop

Application.DisplayAlerts = True
Application.ScreenUpdating = True

Set W = Nothing
Set WL = Nothing
Set UltCel = Nothing

MsgBox "Pronto!", vbOKOnly, "Status"

End Sub


If you have any problems, let me know here.

I hope it helps.

  • Thanks for the help, but I’m getting an error on this line W.Range("A$1:G$1048576").AutoFilter Field:=7, Criteria1:=WL.Range("A" & A).Value "The Range method of the _Worksheet object failed", and by the way my cities column also and G.

  • Help me with this amis please

0

Poxa... please, you created the auxiliary spreadsheets that I mentioned in the explanation?

Also, the code I passed you incorporated into the original code or inserted into a separate module?

The ideal is to insert in a separate module, with the whole code and the auxiliary tabs. This error you pointed out usually occurs when some interval is not defined in the code.

Also, when I tested, no problem occurred to me, but it may be that if your spreadsheet has more or less columns than the range I specified (A:G).

Also make sure that the names of the auxiliary tabs are exactly the same as the code. If you cannot change the code sheet.

Anything, call me here!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.