Macro que elimine dato duplicados.

Dam! Hola que tal!! Nuevamente consultándote, Quisiera saber si me pudiera apoyar con esta macro ya que no logro adaptarla a lo que deseo y hacerla funcional. Tengo un libro en el cual tengo dos hojas en ambas tengo el mismo numero de columnas con el mismo
tipo de información, yo lo que quiero lograr es que de la hoja2 compare la columna A hasta encontrar celda vacía contra la hoja1 columna A hasta encontrar celda vacía, si encuentra el dato entonces reemplazar toda esa fila de la hoja2 en la hoja1 en la intentar donde encontró el dato que coincide.
HAsta ahora solo tengo esta parte.


Sub repetidos()
sheets("Hoja1").Select
Range("a1").Select
intentar = 1
While ActiveCell.Value <> ""
valorcomparacion = ActiveCell.Value
sheets("Hoja2").Select
Range("a2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = valorcomparacion Then
Selection.Delete Shift:=xlUp
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
intentar = intentar + 1
sheets("Hoja1").Select
Range("a2").Select
ActiveCell.Offset(intentar - 1, 0).Select
Wend
End Sub
Saludos.
Esperando tu gran ayuda. Anexo archivo ejemplo!!

https://www.dropbox.com/s/46pu2ofkkyqh5f2/DATOS.xls

1 respuesta

Respuesta
1

Con la siguiente macro copia de la hoja2 a la hoja1 cuando el consecutivo es igual.

Sub reemplaza()
'Por.Dam
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
h2.Select
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
    For j = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(j, "A") = h2.Cells(i, "A") Then
            h2.Range(Cells(i, "A"), Cells(i, "J")).Copy _
            Destination:=h1.Cells(j, "A")
            j = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
        End If
    Next
Next
End Sub

Personalmente, no me llevo bien con el While, hay que poner el contador y hay que revisarlo bien, porque si no lo controlas, puede entrar en un loop y hay que estar deteniendo la macro, sin embargo, cuando es necesario, si lo utilizo.

Saludos. Dam

Muchísimas gracias por la ayuda, creo que tienes razón, es menos complicado trabajar sin el while, ya que la mayoría de las veces se me cicla, pero tu respuesta es mucho mejor.

Saludos y nuevamente quedo muy agradecida por tu puntual ayuda.

Felices fiestas!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas