Notifications
Clear all

Macro que excluí linha com determinado texto

19 Posts
3 Usuários
0 Reactions
6,003 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
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Outra coisa que me ocorreu agora...

Você e stá tentando com o termo Fulano ou com o termo FULANO? Não sei se você sabe, mas, em programação, esses termos são completamente diferentes um do outro!

 
Postado : 03/02/2013 10:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Amigo,

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.

Então acho que aí está o problema, o código que eu preciso, deveria buscar o termo Fulano em qualquer parte da planilha, independente de onde o termo esteja.
Já que não tem como, mesmo assim agradeço pela atenção de todos.

Obrigado!

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

Tira-RJ,

Não é que seja impossível! Creio que seja inviável, do ponto de vista do processamento. A menos que você tenha uma super máquina, com muita memória e com um super processador, sua máquina vai travar ou passar horas executando o código. O que você está pedindo é para verificar em toda a área de uma planilha, onde está uma célula que tenha a palavra Fulano. Uma planilha tem 1.048,576 linhas e 106.384 colunas. Isso significa dizer que o código vai processar, 106.384 vezes 1.048.576 através de uma célula que tenha a palavra Fulano para poder apagar a linha em que ele se encontrar.

Assim, se você conseguir rodar isso na sua máquina (na minha, um modesto Core I7, com 16GB de RAM e 720 de HD, não foi possível), cole o código abaixo no lugar do que enviei anteriormente.

Sub ApagarComCondiçao()
    Dim i, j, UltimaLinha, UltimaColuna As Long
    
    UltimaLinha = 1048576
           
    UltimaColuna = 16384
      
    Application.ScreenUpdating = False
    For j = 1 To UltimaColuna
        For i = UltimaLinha To 1 Step -1
            If Cells(i, j).Value = "Fulano" Then
                Rows(i & ":" & i).Select
                Selection.Delete Shift:=xlUp
            End If
        Next
    Next
    
    Application.ScreenUpdating = True
    Range("B4").Select
    MsgBox "Linha Excluída com Sucesso!", vbDefaultButton1, "!EXCLUSÃO DE LINHAS"
End Sub
 
Postado : 03/02/2013 7:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner,

Obrigado pela sua ajuda, mas aqui também travou também.
Achei que era possível, prq eu tenho um código que o pessoal daqui me passou, que ele procura as linhas vazias da planilha, e as exclui. E ele varre toda a plan, por isso que achei que o princípio era o mesmo.
De qualquer forma, eu agradeço a atenção de todos em dedicar um minuto do seu tempo em ajudar um leigo como eu.
Abraços!

 
Postado : 03/02/2013 8:16 pm
Página 2 / 2