Pregunta para Dante Amor, ¿Eliminar duplicados, con condición?

Buenas tardes Dante:

Tengo una base de datos con Sucursal y Código estos se repiten en mi BD.

Cuando el número de la Sucursal se repita pero no tenga el código (712803110724) borre los registros que se repiten y solo deje 1 de estos.

Y si la Sucursal tiene el código (712803110724) y tiene más de 3 registros me deje 2 de ellos.

Sucursal corresponde a la columna A

Codigo corresponde a columa B

Las sucursales con el código en color mostaza son los que necesito que borre.

Saludos y gracias por tu apoyo.

1 Respuesta

Respuesta
1

Prueba con la siguiente macro

Sub Macro1()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h1 = ActiveSheet
    Set h2 = Sheets.Add
    h1.Select
    h1.Range("A1").Select
    Selection.AutoFilter
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range("A1:B" & u).AutoFilter Field:=2, Criteria1:="=712803110724"
    h1.Columns("A:B").Copy h2.Range("A1")
    h1.Rows("2:" & u).Delete Shift:=xlUp
    Selection.AutoFilter
    h1.Range("A1:B" & u).RemoveDuplicates Columns:=1, Header:=xlYes
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    h2.Range("A2:B" & u2).Copy h1.Range("A" & u)
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h1.Range("A2:A" & u1)
        .SortFields.Add Key:=h1.Range("B2:B" & u1)
        .SetRange h1.Range("A1:B" & u1): .Header = xlYes: .Apply
    End With
    h2.Delete
End Sub

Dante buenas noches gracias por la información funciona de lujo te agradezco tu apoyo. Y a la vez te quiero preguntar si la macro la puedo modificar para que funcione en la columna E y F en vez de A y B?.

Saludos y gracias.

Cambia la A por la E y la B por la F, dime si te funciona.

Funciona a la perfección cuando no tengo datos en las cabeceras A1, B1, C1, D1, cuando tengo información en las cabeceras, no funciona el filtro.

La macro está preparada para funcionar con cabecera, así es como pusiste la imagen.

¡Gracias! Por tu apoyo Dante saludos!!!

Si quieres que funcione sin cabecera, tendría que revisar la macro, lo más sencillo es que le pongas la cabecera, al final se la quitas.

Ahora si es muy necesario que funcione sin cabecera avísame.

Como podrás ver las macros, tienen su complejidad, si quieres una macro que funcione con cabeceras, sin cabeceras, en la columna A en la columna E, se tendría que parametrizar, para que la macro busque en dónde está el primer dato y ahí empezar a hacer todo, pero eso lleva más tiempo. Por eso, son los ejemplos para que en base a esos ejemplos se creen las macros, cualquier cambio que tengas en los datos, la macro deberá adecuarse; no quiero decir con esto, que todas las macros, pero en particular esta macro sí.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas