Eliminar filas con macro VBA

Tengo una serie de datos en diferentes columnas, un consecutivo, fecha y un ID unico, lo que sucede es que esta data se alimenta con cientos de otras datas por diferentes personas, entonces es bastante probable que el ID unico (que corresponde a numero de identificación de una empresa) se repita. Para yo saber cuando se repite hago un contar. Si donde el rango es la columna donde están los ID's y el criterio la celda donde esta el ID. Al final me sale una cantidad de números que el mejor caso sería "1" ya que ahí solo esta contando una vez ese ID y por ende no esta repetido, del "2" en adelante hay que eliminar las FILAS una a la vez hasta que el contar. Si se reduzca a 1.

Intenté con el grabador de macros primero organizar de menor a mayor la columna donde esta el contar. Si, luego filtrar solo el 2 y eliminar todas las filas excepto una, luego el 3, luego el 4, 5, 6... Etc, y funcionó, el problema es que funciona solo en e rango que hice el ejemplo (D110) y a la hora de cruzar la data real que son cientos de registros, pues no me funciona sino una sola parte, y modifique el rango en el modulo pero sigue sin funcionar, así que decidí acudir a ustedes.

NOTA: el "-1" de la formula es para saber cuantas veces esta repetido e ID, ya que sin el -1 el que no se repite daría 1, y eso podría confundir, así que el 0 me indica que esta 0 veces repetido.

2 Respuestas

Respuesta
1

Esta macro elimina los duplicados y al final te pone un mensaje de cuantos elimino

Sub cuenta()
With Range("a1").CurrentRegion
    inicio = .Rows.Count
    .RemoveDuplicates Columns:=3
    fin = Range("a1").CurrentRegion.Rows.Count
    registros = inicio - fin
    MsgBox (registros & " duplicados eliminados"), vbInformation, "AVISO"
End With
End Sub

¡Gracias! Ha funcionado de maravilla, intentaré acoplarlo a mi verdadera data, ya que la pregunta la hice desde mi casa con un ejemplo, pero me fue de maravilla con el ejemplo independientemente de que haya 100 o 1000 registros.

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas