Borrar registros duplicados con VBA

Primero que nada muchas gracias por su ayuda pues me han servido varios códigos aquí encontrados, si no es mucha molestia me gustaría me ayuden con algo relativamente sencillo.

Aqui encontre este gran codigo

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
valor = Target.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(5), valor)
If contarsi > 1 Then
'MsgBox "dato duplicado, se eliminará"
Target.Select
Target.ClearContents
End If
End If
End Sub

Esto me borra solo la columna que valida que no este duplicado los datos sin embargo me gustaría editarla para que me elimine no solo la columna 5 si no la 4, 3 y 2 y no quisiera toda la fila porque me borraría una fórmula que tengo en otra celda.

Respuesta
1

.25.04.17

Buenas tardes, Gabriel

Aquí va aquella rutina modificada para que hagas lo que solicitaste:

Private Sub Worksheet_Change(ByVal Target As Range)
LaColumna = 1 'columna de criterio
ColAborr = Array(2, 3, 4) ' otras columnas a borrar
'  
    If Target.Column = LaColumna Then
        valor = Target.Value
        contarsi = Application.WorksheetFunction.CountIf(Columns(LaColumna), valor)
        If contarsi > 1 Then
        'MsgBox "dato duplicado, se eliminará"
        'Target.Select
            Target.ClearContents
            For LaCelda = 0 To UBound(ColAborr)
                Cells(Target.Row, ColAborr(LaCelda)).ClearContents
            Next
        End If
    End If
End Sub

Nota que la columna de control ahora está en una variable por si la quieres modificar y hay una matriz (array) donde puedes indicarles qué otras columnas de esa misma fila debe borrar.

Coméntame si mi solución resuelve lo que buscas -y, en tal caso, agradeceré que califiques mi contribución- o escríbeme de nuevo aquí, si necesitas más apoyo con esto.

Un saludo

Fernando

.

¡Gracias! Eso ha sido exacto lo que necesitaba. muy agradecido.

.

Un placer ayudar, Gabriel

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas