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
Deje su opinión o su pregunta.

Regístrese para informarle cuando se responda su pregunta.

  1. jorgechavez7 (marzo 15 de 2022)

    Felicidades es justo la macro que estaba buscando

    Responder
  2. JLPro (febrero 8 de 2023)

    ‘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
  3. Jorge3467 (febrero 26 de 2024)

    Mi caso es que tengo varios criterios para eliminar, ¿Cómo puedo modificar la macro para realizar esta eliminación?

    Responder
    • Gerencie.com
      Gerencie.com en respuesta a Jorge3467 (febrero 26 de 2024)

      Un ejemplo con barios criterios:

      Sub Eliminar_Filas()
      Dim ws As Worksheet
      Set ws = Sheets(“Hoja1”) ‘ nombre de la hoja con la información
      Dim col As String
      col = “A” ‘ columna para aplicar la condición

      Dim texto As String
      texto = “ave” ‘ texto de la condición

      Dim valor As Variant
      valor = texto

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

      Application.ScreenUpdating = False

      Dim i As Long
      For i = ws.Range(col & ws.Rows.Count).End(xlUp).Row To 1 Step -1
      Select Case LCase(valor)
      Case LCase(“123”) ‘ Condición 1
      If IsNumeric(ws.Cells(i, col).Value) And ws.Cells(i, col).Value = Val(valor) Then
      ws.Rows(i).Delete
      End If
      Case LCase(“10/07/2017”) ‘ Condición 2
      If IsDate(ws.Cells(i, col).Value) And CDate(ws.Cells(i, col).Value) = CDate(valor) Then
      ws.Rows(i).Delete
      End If
      Case LCase(“ave”) ‘ Condición 3
      If LCase(ws.Cells(i, col).Value) = LCase(valor) Then
      ws.Rows(i).Delete
      End If
      ‘ Puedes agregar más condiciones según sea necesario
      End Select
      Next i

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

      Responder

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