Deletar linhas com ...
 
Notifications
Clear all

Deletar linhas com Data especifica


fsnsengel
Posts: 1
Registered
Topic starter
(@fsnsengel)
New Member
Entrou: 6 meses atrás

Ola,
Estou conseguindo deletar corretamente quando busco na Coluna C qualquer TEXTO, mas quando seleciono para apagar as linhas com uma DATA-Coluna D especifica, a macro me dá um erro.
Se alguem puder dar uma solução agradeço.

Responder
Tags do Tópico
1 Reply
EdsonBR
Posts: 895
Moderator
(@edsonbr)
Prominent Member
Entrou: 6 anos atrás

Bem vindo ao nosso fórum Planilhando, @fsnsengel!

Antes de continuarmos, fique por dentro de nossas Regras.

Quanto à sua dúvida, o problema principal de se usar o método Range.Replace é que ele só verifica fórmulas e não os valores das células. Logicamente que se seu intervalo contivesse somente valores, como a fórmula seria o próprio valor não haveria problema, ele substituiria.

Se quiser continuar usando o Replace pra substituir uma data específica por valores de erro, terás que acrescentar duas etapas à sua rotina:

  1. destruir antes as fórmulas do intervalo convertendo-as aos seus respectivos valores (poderia usar simplesmente Range.Value = Range.Value).
  2. no parâmetro Wath:= usar uma data e não uma String. Sugiro aqui dimensionar a variável Word como Variant e não String e no seu bloco With fazer algo como:
Sub DeletarReset()
   Dim Col As Variant, Word As Variant          'String
   ...
   ...
   With Columns(Col)
     If IsDate(Word) Then
       .Value = .Value  'Atenção: as fórmulas serão diluídas a seus resultados.
       Word = CDate(Word)
     End If
     .Replace Word, "#N/A", xlWhole
   ...
   ...
End Sub

 

Outra abordagem muito utilizada para fazer o que vc pretende seria ir excluindo as linhas de baixo pra cima através de loop pelas células.

 

Responder