Eliminar filas mediante una condición

Hola amigos,

Quiero eliminar las filas de una hoja si cumplen cierta condición, hice el código pero aun así me elimina pero no todas las celdas con la condición, aquí les dejo el código por si alguien me oriente:

Mensaje = MsgBox("¿Desea Eliminar de forma permanente los registros ya pagados?", vbYesNo, "ELIMINACIÓN DE PAGOS")

If mensaje = vbYes Then
Hoja1.Activate
For i = 2 To Sheets("DATOS").Range("I" & Rows.Count).End(xlUp).Row
If Hoja1.Cells(i, "I") = "*" Then
Hoja1.Cells(i, "I").Select
Hoja1.Cells(i, "I").EntireRow.Delete
Else
End If
Next
MsgBox "Datos Eliminados", vbOKOnly, "ELIMINACION DE PAGOS"
Else
End
End If

Solo me elimina algunas filas y no todas.

Espero puedan ayudarme, Gracias

1 Respuesta

Respuesta
1

Te anexo la corrección a la macro, hay que hacer la búsqueda de abajo hacia arriba, para ir eliminando las filas y no afecte el número de fila que lleva el contador i

Sub eliminar()
'Mod.Por.Dam
    mensaje = MsgBox("¿Desea Eliminar de forma permanente los registros ya pagados?", vbYesNo, "ELIMINACIÓN DE PAGOS")
    If mensaje = vbYes Then
        Hoja1.Activate
        For i = Hoja1.Range("I" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Hoja1.Cells(i, "I") = "*" Then
                Hoja1.Rows(i).Delete
            End If
        Next
        MsgBox "Datos Eliminados", vbOKOnly, "ELIMINACION DE PAGOS"
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas