Cómo eliminar las filas que contienen una palabra especificada

Hoy te presento una macro sencilla pero muy útil, que elimina las filas que contienen una determinada palabra.

Imagina una lista de facturas, las cuales unas han sido ya pagadas, pero otras siguen pendientes del pago.

Con el siguiente código podrías eliminar de la lista todas las facturas que han sido pagadas, para poder contactar más fácilmente con los clientes de las facturas que todavía están sin pagar:

 

Sub EliminaFilas()

    Dim Col As Variant, Palabra As String
    Col = InputBox("¿En qué columna contiene las palabras que deseas eliminar?")

    If Len(Col) > 0 And Not Col Like "*[!0-9]*" Then Col = Val(Col)
    Palabra = InputBox("Qué palabra o palabras deseas buscar para eliminar las filas?")

    With Columns(Col)
        .Replace Palabra, "#N/A", xlWhole
        .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
    End With

End Sub

 

Una ventaja bastante buena con respecto a otras soluciones es que funciona igualmente aunque haya filas en blanco entre las filas con datos.

Te dejo el archivo para que practiques y me digas qué te parece.

 

Listado de facturas
Título: Listado de facturas (138 clics)
Tamaño: 17 KB

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

8 comentarios en “Cómo eliminar las filas que contienen una palabra especificada”

  1. Cuando la palabra a ser eliminada no existe en la columna, el proceso peta dando error. Esto se subsanaría de la siguiente manera:
    Sub EliminaFilas()

    Dim Col As Variant, Palabra As String
    Dim ob As Range
    Col = InputBox(“¿En qué columna contiene las palabras que deseas eliminar?”)

    If Len(Col) > 0 And Not Col Like “*[!0-9]*” Then Col = Val(Col)
    Palabra = InputBox(“Qué palabra o palabras deseas buscar para eliminar las filas?”)

    On Error Resume Next

    With Columns(Col)
    .Replace Palabra, “#N/A”, xlWhole
    Set ob = .SpecialCells(xlCellTypeConstants, xlErrors)
    If Not ob Is Nothing Then
    .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
    Else
    MsgBox “No existen apariciones de dicho valor para ser eliminados”
    End If
    End With

    On Error GoTo 0
    End Sub

  2. Excelente ejercicio simplificara varias tares.
    Gracias por compartirlo.
    Saludos.

  3. Estimado cuando presiono cancela se elimina celdas vacías, como se puede evitar ese error

    1. Aaron, tendría que verlo detenidamente, aunque lo más probable es que al pulsar esa tecla, se ejecuta una macro que elimina las celdas. Trata de borrar la macro o de eliminar ese atajo de teclado.

Los comentarios están cerrados.

Sergio

Sergio

Experto formador en Excel y Power BI con más de dos décadas de experiencia. Capacito a profesionales para optimizar su trabajo y ser más eficientes. Con un enfoque práctico y cercano, mi objetivo es ayudarte a dominar estas herramientas esenciales. Descubre mis formaciones.MVP de Microsoft 5 años consecutivos.

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

Buscar

Últimos posts

¿De qué hablo aquí?

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.