Eliminar filas repetidas en excel (no dejar ninguna)

Hola, tengo un archivo excel con mas de 45.000 filas, de números de cedulas de clientes, y algunos datos están repetidos, necesito una macro que me elimine todas las filas que se repiten, pero que no solo me elimine las filas filas repetidas y me deje el dato original, sino que elimine todas, es decir si hay 2 registros con el mismo dato, que se eliminen las 2 filas.

Gracias por la colaboración.

1 respuesta

Respuesta
1

Te dejo el código que te puede ayudar en tu tarea, para correrla debes seleccionar el rango donde se encuentran los datos que deseas procesar, en tu caso, los números de cédula. Quedo pendiente de tu éxito. Saludos

Sub DejarUnicos()
''Creada por FSerrano en 120306
''Para Lorena706 en TodoExpertos.com
''Elimina todos los registros duplicados en la seleccion dada
ActiveSheet.Range(Selection.Cells(1, 1).Address).EntireColumn.Insert
ActiveSheet.Range(Selection.Cells(1, 1).Address).FormulaLocal = "=contar.si(" & Range(Selection.Offset(0, 1).Address).Address & "," & Range(Selection.Cells(1, 1).Offset(0, 1).Address(False, False)).Address(False, False) & ")"
Selection.Cells(1, 1).AutoFill Destination:=Range(Selection.Address)
Selection.Cells(1, 1).EntireRow.Insert
Range(Selection.Address & ":" & Selection.Offset(1, 0).Address).Select
ActiveSheet.Range(Selection.Address).AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>1"
Selection.SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveCell.EntireColumn.Delete
End Sub

NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Muchas gracias por tomarte el tiempo de atender mi solicitud, estuve probando la macro, pero me genera error en la segunda linea:

ActiveSheet.Range(Selection.Cells(1, 1).Address).FormulaLocal = "=contar.si(" & Range(Selection.Offset(0, 1).Address).Address & "," & Range(Selection.Cells(1, 1).Offset(0, 1).Address(False, False)).Address(False, False) & ")"

La he copiado y pegado directamente pero no me funciona, si no es mucha molestia me podrías revisar que puede estar mal?

Gracias nuevamente y disculpa las molestias:

Prueba a cambiar, en la línea que te esta dando problema, esta parte:

...FormulaLocal= "=contar.si"...

por esta otra

...Formula = "=COUNTIF"...

Debería funcionar (en versiones excel 2007 y posteriores).

Tienes una pregunta activa, por favor revisa si mi respuesta te es útil, en caso contrario amplia tu caso.

HOLA MUCHAS GRACIAS POR TU TIEMPO, DISCULPA POR NO HABERTE RESPONDIDO OPORTUNAMENTE, REALMENTE LA SOLUCIÓN QUE ME SUGERISTE NO TUVO ÉXITO, ENCONTRÉ ESTA MACRO QUE ME SOLUCIONÓ EL PROBLEMA:

Sub
test()
Dim
selección As String
Dim c As
String
Dim rng
As Range
With
Application
.ScreenUpdating
= False
.EnableEvents
= False
.Calculation
= xlCalculationManual
With
ActiveSheet
c =
"A"
Set rng
= .Range(.Cells(2, c), _
.Cells(.Rows.Count,
c).End(xlUp))
For Each
celda In rng
If
Application.CountIf(rng, celda) > 1 _
Or celda
= "" Then
If
selección <> "" Then _
selección = selección & ","
selección = selección & celda.Address
End If
Next
celda
If selección
<> "" Then _
.Range(selección).EntireRow.Delete
End With
.ScreenUpdating
= True
.EnableEvents
= True
.Calculation
= xlCalculationAutomatic
End With
End Sub

GRACIAS POR TU ATENCIÓN.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas