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.
[attachments include=»5228″]
excelente me va a ayudar para mi trabajo, un tip muy útil
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
CDELAROSAM, muchas gracias por el aporte. La verdad es que no lo había tenido en cuenta.
Excelente ejercicio simplificara varias tares.
Gracias por compartirlo.
Saludos.
Esta muy bueno y me será muy útil.
Saludos y Gracias