Ayuda con una macro

Hola!
Tengo una lista en Excel de la cual tengo que borrar lineas enteras de acuerdo al contenido de las celdas de la columna A. Hice una macro, poniendo primero un filtro en la columna A según lo que tenga que borrar. El problema es que las informaciones que quiera borrar la próxima vez no se encontraran exactamente en la misma linea que la primera vez que borré. ¿Puedo modificar el código VBA de la macro de alguna manera para que me borre las lineas necesarias según el criterio que yo le asigne?
Gracias !
1

1 Respuesta

85.825 pts.
Revisé el código y tenía un inconveniente al eliminar filas pues se saltaba la verificación de la línea siguiente.
Prueba esta modificación y por favor me cuentas como te fue.
Sub Recorrer_Columna()
criterio = InputBox("Digite el valor a eliminar.")
If criterio = "" Or IsNull(criterio) Then Exit Sub
Range("A2").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = criterio Or ActiveCell.Value = Val(criterio) Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
End Sub
Esto recorre todas las filas que contengan algún valor desde A2 hacia abajo.
Miles y miles de gracias, esto me ahorrara un tiempo de trabajo impresionante. Funciona perfecto!
Gracias Cesar, funciona casi perfecto, lo único es que me esta borrando solo una linea a la vez, es decir, si hay otras lineas con la misma información, tengo que correr tu macro tantas veces como haya lineas con ese criterio. ¿Se puede mejorar el loop para que recorra todo hasta que acabe de borrar todas las lineas del criterio correspondiente?
Gracias de nuevo
Como estas Juana, te desarrollé un pequeño código para lo que pides asumiendo que tu base tiene una fila de títulos y que los datos que quieres eliminar están de la fila 2 hacia abajo.
Esto recorre toda la columna y cuando encuentra el valor elimina toda la fila, te recomiendo tener especial cuidado cuando lo ejecutes pues lo que borres mediante este método no lo podrás recuperar de ninguna manera (no sirve el comando deshacer).
Bueno ahí va.
Sub Recorrer_Columna()
criterio = InputBox("Digite el valor a eliminar.")
If criterio = "" Or IsNull(criterio) Then Exit Sub
Range("A2").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = criterio Or ActiveCell.Value = Val(criterio) Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
Espero haber resuelto tu inquietud, de ser así por favor no olvides finalizar la pregunta con una valoración de la respuesta acorde con su calidad y oportunidad. De lo contrario escríbeme y con gusto te amplío la explicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas