¿Cómo eliminar filas de excel que tengan una palabra especifica?

Tengo un archivo de excel el cual en la columna " G ", a partir de la fila 2, contiene "n" cantidad de filas con información de rutas de carpetas y archivos, pero algunas de ellas contienen la palabra "Superseded", necesito una macro que me ayude a eliminar todas las filas completas en las que, en la columna G, en conjunto con todo el texto, tenga incluida la palabra "Superseded".

El archivo puede llegar a contener hasta más de 4000 filas.

Ejemplo:

-vsites/A8309/03 Fabrication/01 Fabrication Eng/07- MTO-Req/02 Structural/MTO/STR-RIIdPLMTO/Superseded

-sites/A8309/03 Fabrication/01 Fabrication Eng/02- Lofting/01 Structural/GZ7002 Framing Plan El+21640.80 y 24465.80/Superseded

2 respuestas

Respuesta
1

La forma más rápida que conozco es esta, esta macro filtrara la palabra superseded sin importar donde este dentó del texto y luego las borrara todas en un solo paso.

Sub borrar()
With Range("g1").CurrentRegion
    .AutoFilter
    .AutoFilter 1, "*" & "Superseded" & "*"
    .Offset(1).EntireRow.Delete
    .AutoFilter
End With
End Sub
Respuesta
1

Con esta macro no importe en que intentar este, si es mayúscula o minúscula

La macro lo convierte a minúscula y lo busca

Sub BorrarFila()
Dim Texto As String
Texto = "supereded"
uFila = Range("G" & Rows.Count).End(xlUp).Row
For i = uFila To 1 Step -1
   If LCase(Cells(i, 7)) Like "*" & Texto & "*" Then
        Rows(i).Delete
   End If
Next i
End Sub

Este corrector escribe lo que quiere jaja... lo que quise decir es que con esta macro no importa la posicion en que este la palabra, si es mayuscula o minuscula... la macro lo pasa a minuscula con el "LCASE" y luego lo busca... la misma busca desde el ultimo dato en la columna G hasta la fila 1

Tambien lo podrias aplicar asi y ya te queda para cualquier palabra que desees borrar...

Sub BorrarFila()
Dim Texto As String
Texto = InputBox("Ingresar el texto a buscar")
uFila = Range("G" & Rows.Count).End(xlUp).Row
For i = uFila To 1 Step -1
   If LCase(Cells(i, 7)) Like "*" & LCase(Texto) & "*" Then
        Rows(i).Delete
   End If
Next i
End Sub

le agregue un imput asi puedes digitar la palabra y si la encuentra borra la fila

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas