Hola tengo el siguiente problema, tengo un libro de excel con elementos
repetidos, encontre dos codigos pero se me hace que solo funciona con pocas
lineas.
Ya que nada mas eliminan algunas.
Espero me puedan ayudar, les dejo los codigos, gracias
' Desactivar la actualización de pantalla para acelerar la macro.
Application.ScreenUpdating = False
' Obtener un recuento de los registros en los que buscar.
iListCount = Sheets("Indicadores Internas").Range("C6:C1000").Rows.Count
Sheets("Indicadores Internas").Range("A6:AH1000").Select ' Recorrer en bucle
hasta el final de los registros.
Do Until ActiveCell = "" ' Recorrer en bucle los registros.
For iCtr = 1 To iListCount ' No comparar contra sí mismo. ' Para especificar
una columna diferente, cambie el valor 1 en el número de columna.
If ActiveCell.Row <> Sheets("Indicadores Internas").Cells(iCtr, 1).Row Then
' Comparar el registro siguiente.
If ActiveCell.Value = Sheets("Indicadores Internas").Cells(iCtr, 1).Value
Then ' Si la coincidencia es verdad, eliminar la fila.
Sheets("Indicadores Internas").Cells(iCtr, 1).Delete xlShiftUp ' Contador de
incrementos para contar la fila eliminada.
iCtr = iCtr + 1
End If
End If
Next iCtr ' Ir al registro siguiente.
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
MsgBox "Listo!"
End Sub
______________________________________________________________
Sub borrar_menos1()
Dim a() As String, rng As Range, str As String, i As Long, r As Range
Set rng = Range("C6", Range("C65536").End(xlUp))
start:
For Each r In rng
If Application.CountIf(Range("C6:C" & r.Row), r) > 1 Then
i = i + 1
ReDim Preserve a(1 To i)
a(i) = r.Address(0, 0)
If i = 50 Then
str = Join(C, ",")
Range(str).EntireRow.Delete
i = 0
Erase C
GoTo start
End If
End If
Next
str = Join(C, ",")
If str <> "" Then
Range(str).EntireRow.Delete
End If
Erase C
End Sub
_____________________________________________________
Leer las respuestas