Eliminar filas en Excel que cumplan una condición

Seguramente en algunos casos nos hemos visto en la necesidad de eliminar filas en Excel que contengan algún dato en especial, lo que puede ser un poco tedioso si son muchas filas las que hay que revisar.

Macro en Excel eliminar filas según condición.

La siguiente macro ayuda a eliminar filas que cumplan una condición. Por ejemplo, del siguiente listado se requieren eliminar todas las filas que contengan el texto “ave”.

eliminar-filas-excel-con-condicion

Eliminar las filas con una macro.

En la macro se deberán colocar los siguientes datos:

  • El nombre de la hoja que contiene la información
  • La columna donde se va a aplicar la condición
  • El texto de la condición. Todas las filas que tengas este texto serán eliminadas

Código de la macro:


Sub Eliminar_Filas()
Sheets("Hoja1").Select      'nombre de la hoja con la información
col = "A"                   'columna para aplicar la condición
'texto de la condición
'Para una fecha: "10/07/2017" el formato debe ser dd/mm/aaaa
'Para un número: "123"
texto = "ave"    '
valor = texto
If IsNumeric(texto) Then valor = Val(texto)
If IsDate(texto) Then valor = CDate(texto)    '
Application.ScreenUpdating = False
For i = Range(col & Rows.Count).End(xlUp).Row To 1 Step -1
If LCase(Cells(i, "A")) = LCase(valor) Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
MsgBox "Filas eliminadas", vbInformation, "DAM"
End Sub

El texto puede ser una palabra, un número, una fecha o todo un enunciado, si la celda contiene el dato exacto, será eliminada.

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 clic y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale clic 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 clic derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Eliminar_Filas
  10. Aceptar.
  11. Para ejecutarla dale clic a la imagen.

Descargar archivo de Excel

Esta macro debería funcionar en cualquier versión de Excel 2007 1 superior.

Recomendados.

Compártalo en Facebook Compártalo en Twitter

Déjenos su opinión

10 Opiniones
  1. OrlandoEE Dice:

    Consulta como seria para mas de una fila ….?

    Gracias

    Responder
  2. Adguti Dice:

    Hola
    Utilice el código de la macro que hiciste y me funciono bien
    quisiera saber que le agrego para que me lo haga en una serie de hojas que tienen una parte del nombre igual (terminan con la misma palabra)
    Muchas gracias

    Responder
  3. Cristhian Dice:

    Necesito que antes que la macros borre toda la fila bajo la condición dada, copie ciertas celdas de esta misma fila, en otra hoja.

    Me ayudan por favor.

    Responder
  4. GENARO Dice:

    como puedo eliminar una fila desde otra hoja condicion una celda gracias

    Responder
  5. Melo Dice:

    Hola, esta macro me sirvió, pero quiero eliminar las filas dada una lista de criterios… Me pueden ayudar?

    Responder
    • JRAV Dice:

      te recomiendo poner una formula en una nueva columna para que se descarte lo que quieres y no quieres eliminar, posterior aplicas esta fórmula. Por ejemplo una fórmula de condicional, si aplica es 1 y si no es 0, con eso al momento de eliminar, se borra lo que contenga 1 o 0

      Responder
  6. Sergio Dice:

    Me funciono bien la macro, elimina toda la fila.

    Responder
  7. Luis Dice:

    Funciona bien, solo que es muy lento cuando son una gran cantidad de filas a borrar.

    Responder
  8. jorgechavez7 Dice:

    Felicidades es justo la macro que estaba buscando

    Responder
  9. JLPro Dice:

    ‘Pequeña modificación para eliminar todo lo que no cumpla con el criterio ingresado.

    Sub Eliminar_Filas()

    ‘Metodo Abreviado CTRL+W
    ‘Sheets(“Hoja1″).Select nombre de la hoja con la información
    ‘Situar los datos del primer Registro siempre en la fila 4 de cada hoja

    Estab = Application.InputBox(prompt:=”Indique Estab que desea Mantener”, Type:=2)

    col = “A” ‘columna para aplicar la condición
    ‘texto de la condición
    ‘Para una fecha: “10/07/2017” el formato debe ser dd/mm/aaaa
    ‘Para un número: “123”

    texto = Estab
    valor = texto

    If IsNumeric(texto) Then valor = Val(texto)
    If IsDate(texto) Then valor = CDate(texto) ‘

    Application.ScreenUpdating = False

    For i = Range(col & Rows.Count).End(xlUp).Row To 4 Step -1
    If LCase(Cells(i, “A”)) LCase(valor) Then
    Rows(i).Delete

    End If

    Next

    Application.ScreenUpdating = True
    MsgBox “Filas eliminadas”, vbInformation, “DAM”

    End Sub

    Responder
En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.