Notifications
Clear all

Macro que excluí linha com determinado texto

19 Posts
3 Usuários
0 Reactions
6,002 Visualizações
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Boa tarde galera,

Estou com um problema.

Preciso de uma macro que excluí todas as linhas que contiverem um tipo de texto. Por exemplo: tenho uma planilha com vários nomes, quero uma macro que faça uma pesquisa e exclua todas as linhas que contiverem o nome "Fulano". OBS: não importa se na mesma linha conter nomes diferentes em outras células, se a macro encontrar que naquela linha tem o nome "Fulano" ela excluí a linha definitivamente.

Estou enviando em anexo um simples modelo.

 
Postado : 02/02/2013 11:56 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Isso é só uma coluna?

Sua planilha não tem cabeçalho, em todas as citiações?

Explique!!!!

Sub test()
With ActiveSheet
    .AutoFilterMode = False
    With Range("B1", Range("D" & Rows.Count).End(xlUp))
        .AutoFilter 1, "*João*"
        On Error Resume Next
        .Offset(1).SpecialCells(12).EntireRow.Delete
    End With
    .AutoFilterMode = False
End With
End Sub

Att

 
Postado : 02/02/2013 12:22 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Rilton,

Boa Tarde!

Segue minha sugestão.

 
Postado : 02/02/2013 12:43 pm
(@rilton)
Posts: 232
Reputable Member
Topic starter
 

Wagner Morel,

Obrigado! Era justamente o que eu queria! VLW!

 
Postado : 02/02/2013 1:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner, como eu faço pra adaptar esse código a minha necessidade?
é só alterar o valor da linha:

If Cells(i, j).Value = "Fulano" Then

???????

 
Postado : 02/02/2013 2:08 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Sim, Rilton.

Isso mesmo!

Nessa linha If Cells(i, j).Value = "Fulano" Then o i é a linha e o j a coluna. Se o nome que você quer procurar é outro, subtitua o "Fulano".

 
Postado : 02/02/2013 7:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner,

Tem como vc adaptar esse código pra mim, tipo pra ele procurar em toda a plan 1, a palavra "fulano" e excluir a linha? começando de baixo para cima?
De baixo para cima, pois pretendo aplicar em planilhas "gigantes".

Te agradeço...

 
Postado : 02/02/2013 8:05 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Tira-RJ,

Bom Dia!

Respondi a última pergunta achando que ainda era o Rilton. Desculpe.

Bem... segue a adaptação conforme você solicitou.

 
Postado : 03/02/2013 6:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner,

Copiei o código da planilha que vc postou, colei em outra pasta, mas não está funcionando. Tem como ver o que eu estou fazendo de errado?

 
Postado : 03/02/2013 8:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tentando contribuir:
Verifique que para determinar a variavel UltimaLinha é utilizada a coluna 2 ("B")--> Cells(Cells.Rows.Count, 2);
e para UltimaColuna é utilizada a linha 4 -->Cells(4, Cells.Columns.Count).
Então como seu exemplo não há dados na coluna B e linha 4, o codigo não encontrará dados. É preciso adequar essas variaveis a sua planilha

 
Postado : 03/02/2013 8:20 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Tira-RJ,

Reinaldo tem toda razão.

Aliás, esse é o principal problema com as macvros: mudou os dados de lugar, provavelmente a macro não funcionará. Segue seu modelo com a nova adaptação.

 
Postado : 03/02/2013 8:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caros,

Eu devo estar fazendo algo de errado, ou não estou sabendo me explicar.
Eu preciso de um código para EXCLUIR a linha que contenha o termo FULANO, em toda a planilha, independente de onde esse termo esteja.
Copiei e colei o código em outra planilha e não deu certo, teria como verificar novamente, e se for possível, postar o código?

 
Postado : 03/02/2013 9:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O Codigo está na planilha de esxmplo. Possivelmente voce não entendeu o codigo que o colega Wagner postou. Pois ele faz exatamente o que está "querendo".
Primeiro "pega" uma coluna e em todas as celulas dessa coluna "verifica" se o termo buscado existe, existindo deleta; chegando ao final das linhas, parte para proxima colunae repete o ciclo.
Se postar um exemplo significativo(não apenas um registro), os dados podem a seu critério ser ficticios; de sua planilha talvez fique mais simples

 
Postado : 03/02/2013 9:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu copiei o código e adcionei em uma nova planilha, e não excluiu o termo FULANO, como consta no exemplo que eu montei.
Devo estar fazendo algo errado, até perdõem a minha ignorância...

A plan que eu criei está em anexo.

 
Postado : 03/02/2013 9:51 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Amigo,

Talvez você esteja se complicando com as versões dos arquivos já enviados. Nesse último arquivo que lhe enviei (mensagem enviada às 10:58), você não precisa fazer adaptação nenhuma. Ele está fazendo o que você pediu. Excluir a linha onde encontrar a palavra Fulano.

Na planilha que você enviou, você colcocou a palavra Fulano na célula D6. Desse modo, fiz de forma que o código procura a partir da coluna A até a coluna D (a última coluna com dados) e a partir da Ultima linha com dados até a linha 6 (coincidentemente, no caso, são as mesmas: 6), onde existe uma célula cujo valor seja Fulano. Se encontrar, essa linha é apagada.

Obviamente, se a palavra Fulano em sua planilha original pode estar em Linhas acima da linha 6 ou em colunas além da coluna D, a macro precisa saber onde deve procurar. Ela não poderá "adivinhar" onde deve procurar pelo valor Fulano.

 
Postado : 03/02/2013 10:17 am
Página 1 / 2