Notifications
Clear all

Deletar linhas com Data especifica

2 Posts
2 Usuários
0 Reactions
1,861 Visualizações
(@fsnsengel)
Posts: 2
New Member
Topic starter
 

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.

 
Postado : 06/06/2021 11:45 am
Tags do Tópico
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

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.

 

 
Postado : 07/06/2021 9:34 am