Excel - buscar duplicidades de hoja 1 y copiarlas en hoja 2; ayuda por favor

   
Vista:

buscar duplicidades de hoja 1 y copiarlas en hoja 2; ayuda por favor

Publicado por josebacoldo josebacoldo@hotmail.com (2 intervenciones) el 10/04/2013 21:51:33
Hola buenas y gracias por anticipado, vamos a ver si me explico y me puedes entender, trabajo con una hoja en la cual cuenta con 16 columnas, y toda cuando esta completa se llenaran asi como 45000 lineas, lo que yo necesito es buscar duplicidades entre toda la hoja1 y copiar las lineas completas en otra hoja2, para detectar el siguiente criterio de duplicidad:

1.- que detecte las columnas C,D,E (nombre apellido1 apellido2 ) que coincida con todas las filas y las copie en otra hoja, llamada duplicidades, pero con la linea completa desde columnas A hasta P de las mismas lineas
2.- que detecte las columnas F,G,H (dni,nie,pasaporte) que esten duplicadas con otras lineas y copie todas en la hoja duplicidades, pero tambien con la linea completa desde las columnas A hasta la P de las mismas lineas pero las celdas vacias no las considere duplicado
3.- que se cumpla el punto 1 y al menos uno del 2 y copie en la hoja de duplicidades, pero que las celdas que esten vacias no las considere como duplicidad en las columnas F,G,H

digamos que cuando detecte una de las 3 condiciones copie y pegue la linea completa en la hoja duplicidades, tanto la linea original como todas las detectadas que lo cumplen.

lo que intento es buscar duplicidades de la hoja 1 con las dos condiciones explicadas y las copie en otra hoja para controlar las repeticiones, y avisarles de que no pueden
inscribirse mas de una vez, pues ya que controla esta hoja mas de cien entidades.

el macro se ejecutara con un boton por ejemplo llamado buscar duplicados.

muchas gracias por anticipado, imagino que seria hacer un macro con un boton para que empezara a buscar y copiar, pero nunca perder los datos de la hoja 1.

tambien digo que la hoja 1 se llenara entre 37000 y 60000 lineas, muchos datos , ya tengo una macro creada pero no me funciona bien, ya que no admite tal cantidad de lineas , a lo sumo unas 30000 y sino da desbordamiento y otros errores que no se corregir porque no tengo casi nada de idea sobre macros. me seria de gran ayuda , porque estoy bastante tropezado con esto, por
favor necesito esa ayuda. os mando un enlace donde esta colgado un ejemplo ya rellenado con
37000 lineas y una macro pero da problemas, muchas, muchas gracias. oslo pongo pa que le
echeis un vistazo y veais como funciona el enlace de la descarga es del excel es:

https://mega.co.nz/#!JgVT0A4B!BqgUAzRTBb7c4oX4seyxFignDaMj4wczrQDKE42CVxU

y la macro que la acompaña pa que os agais una idea, pero no funciona bien es :


Option Explicit
Option Base 1
--------------------------------------------------
Sub duplicados()

Dim mD, d, e, mS(), s
Sheets("DUPLICADOS").Range("A:IV").ClearContents

mD = Range("A4").CurrentRegion
ReDim Preserve mD(UBound(mD, 1), UBound(mD, 2) + 3)

For d = 1 To UBound(mD, 1)
mD(d, 17) = Trim(mD(d, 3)) & Trim(mD(d, 4)) & Trim(mD(d, 5))
mD(d, 18) = Trim(mD(d, 6)) & Trim(mD(d, 7)) & Trim(mD(d, 8 ))
mD(d, 19) = "N"
Next

mD(1, 19) = "S"
mD(2, 19) = "S"
mD(3, 19) = "S"

For d = 4 To UBound(mD, 1)
For e = d + 1 To UBound(mD, 1)
If mD(d, 19) <> "S" Then
If mD(d, 17) = mD(e, 17) Or mD(d, 18) = mD(e, 18) Then
mD(d, 19) = "S"
mD(e, 19) = "S"
End If
End If
Next
Next

d = 0: e = 0
ReDim mS(UBound(mD, 1), UBound(mD, 2) - 3)
For d = 1 To UBound(mD, 1)
If mD(d, 19) = "S" Then
e = e + 1
For s = 1 To UBound(mD, 2) - 3
mS(e, s) = mD(d, s)
Next
End If
Next

Sheets("DUPLICADOS").Range("A1:P" & e) = mS

End Sub

por favor de nuevo es importante para mi, muchisimas gracias, un saludo.


resumiendo :

-si columnas C,D,E existen mas de 1 iguales copia todas las lineas las a la hoja 2, tanto original como las duplicadas.
-si columnas F ó G ó H existen mas de 1 iguales copia todas las lineas en la hoja 2, tanto original
como duplicadas

pero nunca perdiendo los datos de la hoja 1. lo siento por lo extenso del tema. reitero muchas
gracias.

josebacoldo@hotmail.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder