Ir ao conteúdo
  • Cadastre-se

Excel Localizar palavras no Excel e excluir em lotes, personalizado


Ir à solução Resolvido por Visitante,

Posts recomendados

Amigo estou tendo dificuldade em escrever e entender as ferramentas aqui, vai desculpando ai mas vou tentar melhorar a explicação:

A linha abaixo da linha, que tem a palavra adulto, jamais terá qualquer palavra repetida ou que associe, ela a qualquer linha, ela simplesmente precisa ser apagada juto 

o fato de estar repetido essa palavra ►ASSDASVDS ◄ foi que eu criei uma planilha de exemplo, e fui copiando e colando, foi mal veja la eu anexei o arquivo Excel novamente atualizado não tem mais palavras repetidas abaixo da palavra adulto

Vou reformular o exemplo:
Olhe na  planilha em anexo nas linhas: ►3, 7, 11, 15
 tem a palavra adulto, logo terei que exclui-las todas de uma vez ou remover para outra planilha as linhas 3 - 7 - 11 - 12
mas terei   que excluir junto as linhas: ►4, 8, 12, 16, que são as abaixo dela
mas o conteúdo delas nao tem relação com as demais

Link para o comentário
Compartilhar em outros sites

5 horas atrás, TELEFONIA FIXA disse:

Organizar pro palavras mas mantendo a linha de baixo

...mas junto com cada linha contendo essa palavra a linha abaixo dela ... tem que ser excluídas junto:
Meio confuso :blush:


..., mas ja imaginou fazer isso em 8 mil linhas
Molezinha, basta clicar em um botão 😉


Bom seria se fosse possível, pesquisar bebida alcoólica e todos as linhas que contenham cerveja ou cachaça pudessem ser excluídas juntamente com sua respectivas linha de baixo    abaixo

Como as macros ainda não reconhecem as bebidas você precisa fornecer a lista com os nomes das bebidas.

 

Veja se o código abaixo atende.

Considerei que se a linha começa com ADULTO então sempre a linha abaixo começa com ASSDASVDS, e se a linha começa com ASSDASVDS então sempre a linha acima começa com ADULTO.

Sub ExcluiLinhas()
 Application.ScreenUpdating = False
 With ActiveSheet
  .AutoFilterMode = False
  .Rows(1).Insert: [A1] = "HDR"
  .[A1].AutoFilter 1, "ADULTO" & "*", xlOr, "ASSDASVDS" & "*"
  If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 0 Then
   .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete
  End If
  .AutoFilterMode = False
  .Rows(1).Delete
 End With
 Application.ScreenUpdating = True
End Sub

 

Link para o comentário
Compartilhar em outros sites

 

2 horas atrás, osvaldomp disse:

 

Veja se o código abaixo atende.

Considerei que se a linha começa com ADULTO então sempre a linha abaixo começa com ASSDASVDS, e se a linha começa com ASSDASVDS então sempre a linha acima começa com ADULTO.


Sub ExcluiLinhas()
 Application.ScreenUpdating = False
 With ActiveSheet
  .AutoFilterMode = False
  .Rows(1).Insert: [A1] = "HDR"
  .[A1].AutoFilter 1, "ADULTO" & "*", xlOr, "ASSDASVDS" & "*"
  If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 0 Then
   .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete
  End If
  .AutoFilterMode = False
  .Rows(1).Delete
 End With
 Application.ScreenUpdating = True
End Sub

Amigo estou tendo dificuldade em escrever e entender as ferramentas aqui, vai desculpando ai mas vou tentar melhorar a explicação:

A linha abaixo da linha, que tem a palavra adulto, jamais terá qualquer palavra repetida ou que associe, ela a qualquer linha, ela simplesmente precisa ser apagada juto 

o fato de estar repetido essa palavra ►ASSDASVDS ◄ foi que eu criei uma planilha de exemplo, e fui copiando e colando, foi mal veja la eu anexei o arquivo Excel novamente atualizado não tem mais palavras repetidas abaixo da palavra adulto

Vou reformular o exemplo:
Olhe na  planilha em anexo nas linhas: ►3, 7, 11, 15
 tem a palavra adulto, logo terei que exclui-las todas de uma vez ou remover para outra planilha as linhas 3 - 7 - 11 - 12
mas terei   que excluir junto as linhas: ►4, 8, 12, 16, que são as abaixo dela
mas o conteúdo delas nao tem relação com as demais

 

Link para o comentário
Compartilhar em outros sites

18 horas atrás, TELEFONIA FIXA disse:

... veja la eu anexei o arquivo Excel novamente atualizado

Não encontrei o novo arquivo😕

 

não tem mais palavras repetidas abaixo da palavra adulto
Ok, experimente o código abaixo no lugar do anterior.

 

dica - para responder clique em Responder, localizado abaixo da última postagem; só clique em Citar se necessário.
 

Sub ExcluiLinhas()
 Dim c As Range, LR As Long
 Application.ScreenUpdating = False
  With ActiveSheet
   .AutoFilterMode = False
   .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
   .Rows(1).Insert: [A1] = "HDR"
   LR = .Cells(Rows.Count, 1).End(3).Row
   .[A1].AutoFilter 1, "ADULTO" & "*"
   If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
     For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
       c.Offset(1).EntireRow.Delete
     Next c
     .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Delete
   End If
   .AutoFilterMode = False
   .Rows(1).Delete
  End With
 Application.ScreenUpdating = True
End Sub

 

Link para o comentário
Compartilhar em outros sites

Instale o código que postei em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Sim Patropi ,fiz tudo conforme ele, orientou e esta aqui o arquivo upei ele pra vocês verem se fiz algo errado, mas  quando clico em executar ele some e fica só a planilha não tem um campo onde eu escreva o conteúdo que quero deletar juntamente com a linha de baixo:

Eu tenho 8 mil linhas ai eu pesquiso adulto aparecem 40 linha escrito adulto
   Ex:
 Linha 01    maria dinora 11/05/2040 wwwwhttp adulto resteg porno

 Linha 02     797457898439(*&**&&(*&((*&¨(*((*)()KJNJGBHGGBHJ
 Linha 03     joao 17 17 17 senhoras e senhores 
 Linha 05    dfdsfskojdpai 

Linha 06      maria dinora 11/05/2040 wwwwhttp adulto resteg porno

 Linha 07     797457898439(*&**&&(*&((*&¨(*((*)()KJNJGBHGGBHJ
 Linha 08     oao 17 17 17 senhoras e senhores 
 Linha 09    Porno redtube   lksdlm,slçldsal~çWWWWkjdsfdflçfdlkdfk

Linha 10     woloip4984042o009*(&)*&)*(*_(*_*)_IU)Y(&*¨hjn

Então veja que na linha 1 e 9 aparecem a palavra porno imagine que apareceram 500 palavras porno em 500 linhas 
Eu preciso excluir as 500 e alinha de baixo que nao tem nenhuma relação
ai nesse exemplo terei que excluir as linha 1 e 2 e 9 e 10  eo mesmo pras as 500 linhas mas clico em executar some a macro fica só a planilha
image.thumb.png.6893996f2d80e36760e6683306304d53.png
la na macro nao aprece um lugar preu escrever a palavra  e achar todas essas linhas
 

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, TELEFONIA FIXA disse:

... não tem um campo onde eu escreva o conteúdo que quero deletar juntamente com a linha de baixo:

 

 

Você não precisa escrever o conteúdo que quer deletar pois você já escreveu no post #1, lembra disso?

 

Em 15/10/2018 às 12:48, TELEFONIA FIXA disse:

Olhe na  planilha em anexo nas linhas: ►3, 7, 11, 15
 tem a palavra adulto, logo terei que exclui-las todas de uma vez ou remover para outra planilha as linhas 3 - 7 - 11 - 12
mas terei   que excluir junto as linhas: ►4, 8, 12, 16, que são as abaixo dela
 

 

Link para o comentário
Compartilhar em outros sites

A sim agora entendi,  então eu não soube me expressar na explicação, é que a palavra  adulto eu dei como exemplo teria que ter uma janela  tipo pesquisador onde eu possa trocar a palavra adulto por outra

Ex: terei que localiza e e excluir tudo relacionado a pornografia, como Porno, sexo, pênis vagina, analógico, e ao excluir qualquer linha que contenha a  palavra pesquisada, a linha abaixo dela tem que sumir juntos

Mas mesmo  assim, olhe a planilha que eu enviei ai eu dei executar some a macro e vai pra ultima linha preenchida mas não exclui a palavra adulto continua la e a linha debaixo também, devo ter errado em algo

Link para o comentário
Compartilhar em outros sites

Substitua o código anterior pelo primeiro código abaixo.

Esse código utiliza como critério as palavras que você citou no post #11. Você pode incluir/excluir palavras diretamente no código, de acordo com a sua necessidade/conveniência.

 

Instale o  segundo código abaixo no Módulo2 (menu Inserir / Módulo).

Esse código irá exibir uma Caixa de Entrada para receber uma palavra digitada/colada, que será utilizada como critério.

 

Você pode utilizar os dois códigos conforme a sua necessidade/conveniência.

 

Sub ExcluiLinhasMúltiplasPalavras()
 Dim c As Range, LR As Long, tfArr, p
  tfArr = Array("adulto", "analogico", "analógico", "pênis", "porno", "sexo", "vagina")
  Application.ScreenUpdating = False
  For Each p In tfArr
    With ActiveSheet
     .AutoFilterMode = False
     .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
     .Rows(1).Insert: [A1] = "HDR"
     LR = .Cells(Rows.Count, 1).End(3).Row
     .[A1].AutoFilter 1, "*" & p & "*"
     If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
         c.Offset(1).EntireRow.Delete
       Next c
       .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     End If
     .AutoFilterMode = False
     .Rows(1).Delete
    End With
  Next p
  Application.ScreenUpdating = True
End Sub

 

Sub ExcluiLinhasPalavraDigitada()
 Dim c As Range, LR As Long, p As String
  p = InputBox("DIGITE A PALAVRA OU PARTE DELA", "EXCLUSÃO DE LINHAS")
  If p = "" Then Exit Sub
  Application.ScreenUpdating = False
    With ActiveSheet
     .AutoFilterMode = False
     .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
     .Rows(1).Insert: [A1] = "HDR"
     LR = .Cells(Rows.Count, 1).End(3).Row
     .[A1].AutoFilter 1, "*" & p & "*"
     If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
         c.Offset(1).EntireRow.Delete
       Next c
       .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     End If
     .AutoFilterMode = False
     .Rows(1).Delete
    End With
  Application.ScreenUpdating = True
End Sub

 

Link para o comentário
Compartilhar em outros sites

Acho que só estou conseguindo aborrecer vocês ai com minha falta de conhecimento, Osvaldo
Deu erro conforme no print abaixoimage.thumb.png.b6a6270a992c56f6846791ee7050c27b.png 


( lembrando que, as palavras que escrevi, como exemplo não constam na lista, caso venha a ter, terei que excluir juntamente com a linha a baixo da linha que consta essas palavras)

Mas deixa ver se eu entendi

Quando não forem mais essa palavras a excluir:
   Porno, sexo, pênis vagina, analógico,
E forem qualquer outra que se tornar necessária é  só emeu abrir o modulo e substitui-las pelas novas palavras

Não teria como cliar um Userform uma janela onde eu possa escrever qualquer palavra e clicar em pesquisar e em excluir???

Link para o comentário
Compartilhar em outros sites

agora, TELEFONIA FIXA disse:

Deu erro conforme no print abaixo

Me parece que os erros são devidos à "sujeira"  ao copiar o código aqui do fórum. Experimente limpar os espaços à esquerda dos comandos que apresentam erro e depois aperte Tab para retornar o comando para a posição inicial. Se não resolver disponibilize o seu arquivo com os códigos. Imagem não serve.


( lembrando que, as palavras que escrevi, como exemplo não constam na lista,

Não entendi. Palavras que você escreveu onde? Não constam em qual lista?

 

Mas deixa ver se eu entendi
Quando não forem mais essa palavras a excluir:
   Porno, sexo, pênis vagina, analógico,
E forem qualquer outra que se tornar necessária é  só emeu abrir o modulo e substitui-las pelas novas palavras
Bingo!!! :aplausos:


Não teria como cliar um Userform uma janela onde eu possa escrever qualquer palavra e clicar em pesquisar e em excluir???

Me parece que você não leu todo o meu post anterior. Veja o trecho abaixo em vermelho.

 

2 horas atrás, osvaldomp disse:

Instale o  segundo código abaixo no Módulo2 (menu Inserir / Módulo).

Esse código irá exibir uma Caixa de Entrada para receber uma palavra digitada/colada, que será utilizada como critério.

 

Link para o comentário
Compartilhar em outros sites

FILMES 0001.rar
Dei executar 02 vezes e sumiu as linhas com a palavra adulto, ai tentei mudar la no modulo:
as palavra adulto para " matikoloca " deu erro, ai tentei refazer e voltou ao normal, as palavras adultos estão sumindo com a respectiva linha de baixo delas mas nao aparece um local pra eu pesquisar e excluir outras linhas contendo outras palavras mas evolui um poquinho. agora se eu mudar alguma palavra do modulo da erro em amarelo conforme na foto:


image.thumb.png.6ef8186f42920a29865a5b6695242fb8.png

Ai em seguida fui fazer de novo ja deu erro, mas sou bem leigo mesmo Osvaldo, faz na planilha conforme você sugeriu por ultimo agora, e sinaliza onde eu errei
e nao achei a Caixa de Entrada para receber uma palavra digitada, mas deve ser por que nao funcionou néh😥

 

FILMES 0003final.rar

Link para o comentário
Compartilhar em outros sites

 


 

2 horas atrás, osvaldomp disse:

Segue o arquivo com os comentários na própria planilha. Veja se agora vai.

FILMES 0003final.zip


Valeu ficou perfeito mesmo, só teve um inconveniente quando eu copiei as 8 mil linhas do arquivo original p/ essa planilha que voce me retornou, a 1ª linha some junto sem nenhuma relação com a palavra  pesquisada ou as linhas delas mas a 2ª linha dessa permanece ai eu coloquei um linha vaga em cima e resolveu

Mas esta resolvido pode encerrar o tópico

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Gostaria da ajuda de vocês, novamente a planilha a principio atendeu ao que queria, faz exatamente o que foi pedido, que era ao dar trl + d aparece uma cx de exclusão de linhas e eu digitava a palavra e excluía todas as linhas onde continha a palavra + a respectiva linha de baixo de cada uma dessa linhas desapareciam automaticamente sem eu vê-la ( mas elas sumiam sem eu ver somente por digitar uma palavra contida nessa linhas elas já sumiam)

 

Mas, usando na pratica, percebi que alguns conteúdos, não poderiam ser deletado/ excluídos, juntamente com a linha abaixo, mas sim teriam ser analisados, e em alguns casos serem copiados e / ou recortados em lote ou individual, e colados ou transferidos automáticos pra outra Planilha, ou ser for o caso aperto delete e excluo todas as sublinhadas

Então pensei se fosse possível ao escrever a "palavra" todas a linha envolvidas ficassem sublinhadas ou filtradas
E com um outros comandos:

Ctrl + d = cx de Dialogo aparece digito a palavra 
aparece todas as linhas com as respectivas linha debaixo sublinhadas e filtradas
Ctrl + t = seleciona todas
Ctrl + p = seleciona parcial ou individual

Ctrl + c = copiar
Ctrl + x = recortar
Ctrl + v = colar o que copiou ou recortou
Ou
Dell (delete) para excluir parcial ou  todas as sublinhadas

FILMES 0003final.zip
(sublinhar todas ou melhor filtrar todas para as linha iniciais ocultando as demais assim você pode visualizar somente as que pesquisou e precisa analisar e decidir  então o que fazer com as mesmas

Tomará que não tenha ficado muito confuso🤔

Link para o comentário
Compartilhar em outros sites

Sub ExcluiLinhasMúltiplasPalavras()
 Dim c As Range, LR As Long, tfArr, p
  tfArr = Array("adulto", "analogico", "analógico", "pênis", "porno", "sexo", "vagina")
  Application.ScreenUpdating = False
  For Each p In tfArr
    With ActiveSheet
     .AutoFilterMode = False
     On Error Resume Next
     .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
     On Error GoTo 0
     .Rows(1).Insert: [A1] = "HDR"
     LR = .Cells(Rows.Count, 1).End(3).Row
     .[A1].AutoFilter 1, "*" & p & "*"
     If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
         c.Offset(1).EntireRow.Delete
       Next c
       .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     End If
     .AutoFilterMode = False
     .Rows(1).Delete
    End With
  Next p
  Application.ScreenUpdating = True
End Sub
Sub ExcluiLinhasPalavraDigitada()
 Dim c As Range, LR As Long, p As String
  p = InputBox("DIGITE A PALAVRA OU PARTE DELA", "EXCLUSÃO DE LINHAS")
  If p = "" Then Exit Sub
  Application.ScreenUpdating = False
    With ActiveSheet
     .AutoFilterMode = False
     On Error Resume Next
     .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
     On Error GoTo 0
     .Rows(1).Insert: [A1] = "HDR"
     LR = .Cells(Rows.Count, 1).End(3).Row
     .[A1].AutoFilter 1, "*" & p & "*"
     If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
         c.Offset(1).EntireRow.Delete
       Next c
       .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Delete
     End If
     .AutoFilterMode = False
     .Rows(1).Delete
    End With
  Application.ScreenUpdating = True
End Sub
'Então pensei se fosse possível ao escrever a "palavra" todas a linha envolvidas ficassem sublinhadas ou filtradas
Sub FiltraLinhasPalavraDigitada()
 Dim c As Range, LR As Long, p As String
  Application.ScreenUpdating = False
    With ActiveSheet
     .AutoFilterMode = False
     LR = .Cells(Rows.Count, 1).End(3).Row
     .Range("A2:A" & LR).Interior.ColorIndex = xlAutomatic
     p = InputBox("DIGITE A PALAVRA OU PARTE DELA", "EXCLUSÃO DE LINHAS")
     If p = "" Then Exit Sub
     On Error Resume Next
     .[A:A].SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
     On Error GoTo 0
     .Range("A1:B" & LR).AutoFilter 1, "*" & p & "*"
     If .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       For Each c In .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible)
         c.Interior.ColorIndex = 6: .Rows(c.Row + 1).Hidden = False
       Next c
     Else: .AutoFilterMode = False
     End If
    End With
  Application.ScreenUpdating = True
End Sub
'Dell (delete) para excluir parcial ou  todas as sublinhadas
Sub ExcluiSelecionadas()
 Dim k As Long, LR As Long
  LR = Cells(Rows.Count, 1).End(3).Row
  For k = LR To 2 Step -1
   If Not Intersect(Cells(k, 1), Selection) Is Nothing And Cells(k, 1).Interior.ColorIndex = 6 Then
    Rows(k).Resize(2).Delete
   End If
  Next k
End Sub
Sub RemoveFiltroECores()
 ActiveSheet.AutoFilterMode = False
 [A:A].Interior.ColorIndex = xlAutomatic
End Sub

obs.

1. antes de rodar qualquer um dos códigos acima insira uma linha na linha 1 e coloque qualquer conteúdo em A1 como cabeçalho, somente na primeira vez

2. em lugar de sublinhar o código irá pintar de amarelo

3 se você precisar de mais algum código, então utilize o gravador de macros

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...