Eliminar renglones de una tabla según un criterio

Quiero eliminar de una tabla renglones pero solo si cumplen los siguientes criterios.

Tengo 3 columnas con datos, A. B y C las condiciones deben de ser lo siguiente

Si A2=A3, es decir la actual es igual a la celda inferior, continua evaluando, sino se pasa al siguiente renglón

Si a B2=B3, es decir la actual es igual a la celda inferior, continua evaluando, sino se pasa al siguiente renglón

Si C2>C3 elimina todo el renglón 3 y vuelve a evaluar los criterios anteriores, si C2=C3 entonces se pasa al siguiente renglón.

No se si me di a entender, espero sus comentarios.

Saludos.

1 Respuesta

Respuesta
1

Las comparaciones me quedan claras, pero cuando dices : "se pasa al siguiente renglón", significa que debe evaluar el 2 con el 4 ó el 3 con el 4. La misma pregunta, en caso de que elimino todo el renglón 3, ¿ahora evaluó el 2 con el nuevo 3? ¿Ó el nuevo 3 con el 4?

Con lo de que se pasa al siguiente renglón quiere decir que si estaba comparando A2 con A3, ahora debe de comprara A3 con A4 y asi sucesivamente.

En el caso de que se elimine el renglón 3, debe de comparar el renglón 2 completo contra el nuevo renglón 3.

No se si con eso queda mas claro.

Gracias por tu respuesta.

Saludos.

Prueba la siguiente macro

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: eliminar
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub eliminar()
'Por.DAM
f = 2
For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(f, "A") = Cells(i, "A") And _
        Cells(f, "B") = Cells(i, "B") And _
        Cells(f, "C") > Cells(i, "C") Then
        Rows(i).Delete
        i = i - 1
    Else
        f = f + 1
    End If
Next
End Sub

Saludos.DAM
Si es lo que necesitas.

Lo veo y no lo creo, yo me considero bueno con los macros y mi código salio enorme ja ja el tuyo es pequeño y funciona perfecto. Mil gracias excelente codigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas