Macro para eliminar registros que contengan varias palabras clave

Tengo un excel con más de 40.000 filas y necesitaría borrar los registros en los que aparezcan algunas palabras. Como son muchas las palabras que eliminarán registros, lo ideal sería poder indicar un rango de celdas donde yo pueda poner esas palabras. Es decir, borrar todos los registros que contengan alguna de las palabras de un rango.

Respuesta
2

Te anexo la macro. Sigue las indicaciones:

En la "Hoja1" pon tus datos

En la "Hoja2", en la columna "A" pon las palabras clave, como se muestra en la siguiente imagen:


La macro buscará cada palabra clave en la "Hoja1" en la columna "B", si la palabra se encuentra, entonces elimina la fila.

Cambia en la macro "Hoja1" "Hoja2" y "B" por tus datos


Sub Eliminar_Filas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.StatusBar = False
    Set h1 = Sheets("Hoja1")    'hoja con datos
    Set h2 = Sheets("Hoja2")    'hoja con palabras
    col = "B"                   'columna de datos
    '
    u = h1.Range(col & Rows.Count).End(xlUp).Row
    uc = h1.UsedRange.Columns(h1.UsedRange.Columns.Count).Column + 1
    Set r = h1.Columns(col)
    '
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        Set b = r.Find(h2.Cells(i, "A"), LookAt:=xlPart)
        If Not b Is Nothing Then
            celda = b.Address
            Do
                h1.Cells(b.Row, uc) = "x"
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> celda
        End If
    Next
    '
    For i = u To 1 Step -1
        Application.StatusBar = "Revisando fila: " & i
        If h1.Cells(i, uc) = "x" Then
            h1.Rows(i).Delete
        End If
    Next
    Application.StatusBar = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Realicé una prueba con 50,000 registros y tardó 2 minutos, pero el tiempo depende de cada equipo, de la capacidad de memoria, de la cantidad de datos a borrar, de la cantidad de información que tengas en la "Hoja1", formatos, fórmulas, etc.


Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Eliminar_Filas
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas