Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por susev
Posts
#72188
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
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#72190
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
susev agradeceu por isso
Por susev
Posts
#72193
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
Por osvaldomp
#72195
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
susev agradeceu por isso
Por susev
Posts
#72197
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
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#72198
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
susev agradeceu por isso

=SE(MÊS(A1)<7;"1º sem&a[…]

Bom Dia Senhores. Tenho uma macro que preciso dei[…]

Free relationships without drama and obligations. […]

Girar Imagem e Zoom

Boa noite Teria alguma forma de dar um "[…]

Valeu. Muito Obrigado!!!!!!!!

Pessoal, Ao clicar no botão Copiar (Guia C[…]

Procv com serro em vba

Resolvido

Bom dia, pessoal! com a data de nascimento e data […]

Estamos migrando para uma comunidade no Discord