Excel - Eliminar registro duplicados por macro

Amigos tengo una tarea, tengo un excel de un poco mas de 34000 los registros tiene un código único que los identifica pero este código se puede duplicar hasta 7 veces, resulta que cada duplicado en una celda tiene una fecha que para cada registro es diferente, ejemplo:

Lo que necesito es una macro que me elimine los registro que se repiten pero me conserve el que tenga fecha más reciente.

1 respuesta

Respuesta
1

Esta es la macro que yo uso(esta después de la pantalla), espero te sirva de ejemplo, anexo pantalla de como queda el resultado

Sub borrar_duplicado()
Dim unicos As New Collection
Set datos = Range("a1").CurrentRegion

With datos
Set datos = .Rows(2).Resize(.Rows.Count - 1, .Columns.Count)
.Sort key1:=Range(.Columns(1).Address), order1:=xlAscending, _
key2:=Range(.Columns(2).Address), order1:=xlDescending

filas = .Rows.Count
For i = 1 To filas
valor = .Cells(i, 1)
On Error Resume Next
unicos.Add valor, CStr(valor)
On Error GoTo 0
Next i
Set resultado = .Columns(.Columns.Count + 3).Resize(unicos.Count, .Columns.Count)
matriz = resultado
For j = 1 To unicos.Count
valor = unicos.Item(j)
cuenta = WorksheetFunction.CountIf(.Columns(1), valor)
fila = WorksheetFunction.Match(valor, .Columns(1), 0)
Set valores = .Rows(fila).Resize(cuenta, .Columns.Count)
matriz(j, 1) = valores.Cells(valores.Rows.Count, 1)
matriz(j, 2) = valores.Cells(valores.Rows.Count, 2)
Next j
End With

Range(resultado.Address) = matriz
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas