Página 1 de 1

Ajuda com Macro

Enviado: 29 Ago 2022 às 13:43
por susev
Pessoal, boa tarde!

Recebemos essa planilha diariamente de um cliente, com centenas/milhares de linhas. Quando recebemos, precisamos remover todos os processos duplicados (coluna O), mas temos que levar em consideração se existe audiência agendada antes de excluir a linha (Colunas: V,W,X). Se houver audiência, temos que manter a linha e excluir a que estiver duplicada, mas sem a informação de audiência. As vezes acontece de um mesmo número de processo aparecer 10 vezes, por exemplo. Nessas 10 linhas, 7 não possuem audiência e 3 possuem, mas com datas iguais. Só temos que manter 1 dessas linhas.

Além disso, precisamos verificar se existe quebra de linha na coluna "i" e fazer a remoção.

Existiria alguma forma de fazer essa verificação de forma automática? Se sim, será que poderiam me ajudar, por favor?
Atualmente fazemos isso de forma manual e leva muito tempo.

Agradeço antecipadamente!
Abraços

Re: Ajuda com Macro

Enviado: 29 Ago 2022 às 19:33
por osvaldomp
Experimente:
Código: Selecionar todos
Sub ExcluiProcessosDuplicados()
 Application.ScreenUpdating = False
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).Sort Key1:=[O4], order1:=xlAscending, Key2:=[V4], order2:=xlAscending
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).RemoveDuplicates Columns:=15
 Columns(9).Replace Chr(10), ""
End Sub

Re: Ajuda com Macro

Enviado: 30 Ago 2022 às 08:44
por susev
Oi, Osvaldo
Bom dia!

Como sempre, você me ajudando! =D Muito obrigada!

Por falha minha esqueci de dizer que em um mesmo processo podem aparecer duas ou mais audiências com datas diferentes. Fiz o teste com o código e ele acaba mantendo apenas 1 dessas datas. Quando forem datas diferentes, é possível manter, por favor?

Agradeço demais pela ajuda de sempre! ;)
Abraços

Re: Ajuda com Macro

Enviado: 30 Ago 2022 às 15:01
por osvaldomp
susev escreveu:Nessas 10 linhas, 7 não possuem audiência e 3 possuem, mas com datas iguais.
susev escreveu: 30 Ago 2022 às 08:44 ... esqueci de dizer que em um mesmo processo podem aparecer duas ou mais audiências com datas diferentes.
Oi, Susana.
Fiz as alterações para manter os registros com datas diferentes para um mesmo Processo.
Código: Selecionar todos
Sub ExcluiProcessosDuplicados()
 Application.ScreenUpdating = False
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).Sort Key1:=[O4], order1:=xlAscending, Key2:=[V4], order2:=xlAscending
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).RemoveDuplicates Columns:=Array(15, 22)
 Range("V4:V" & Cells(Rows.Count, 2).End(3).Row).SpecialCells(4).EntireRow.Delete
 Columns(9).Replace Chr(10), ""
End Sub

Re: Ajuda com Macro

Enviado: 30 Ago 2022 às 15:35
por susev
Oi, Osvaldo

Deu certo!
Só notei um pequeno problema. O código está excluindo linhas que não estão duplicadas. Acrescentei as 2 últimas linhas na minha planilha, quando mando executar, elas também são apagadas e possuem número de processo diferentes.
Poderia ajustar só mais isso, por favor?
Agradeço demais

Re: Ajuda com Macro

Enviado: 30 Ago 2022 às 18:59
por osvaldomp
Oi, Susana.
Verdade. Fiz a correção.
Código: Selecionar todos
Sub ExcluiProcessosDuplicados()
 Application.ScreenUpdating = False
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).Sort Key1:=[O4], order1:=xlAscending, Key2:=[V4], order2:=xlAscending
 Range("A4:AL" & Cells(Rows.Count, 2).End(3).Row).RemoveDuplicates Columns:=Array(15, 22)
 With Range("AM4:AM" & Cells(Rows.Count, 2).End(3).Row)
  .Formula = "=IF(AND(COUNTIF(O$4:O4,O4)>1,V4=""""),1/0,"""")"
  .Cells.Value = .Cells.Value
  .SpecialCells(2, 16).EntireRow.Delete
  .Value = ""
 End With
 Columns(9).Replace Chr(10), ""
End Sub

Re: Ajuda com Macro

Enviado: 31 Ago 2022 às 10:34
por susev
Oi, Osvaldo
Bom dia!

Ficou perfeito! Muito obrigada pela ajuda de sempre!!
Abraços