Necesito crear una macro que me ayude a eliminar filas si el valor de una celda es igual a cero.

Esto lo necesito hacer varias veces ya que la hoja tiene cerca de 10,000 filas.

ENTRE A 4969 EXPERTOS Y VI ESTA MACRO :

Sub Eliminar_filas()
' Ultima fila de datos
uf = Range("A" & Rows.Count).End(xlUp).Row
' Recorremos el bucle desde la última fila con datos, hasta la fila 6'
For f = uf To 6 Step -1
' Si la celda de la columna "E" de la fila examinada'
' Es igual a 0 o no está en blanco'
If Cells(f, "E") = 0 Or Cells(f, "E") = "" Then
' Borra la fila'
Rows(f).Delete
End If
Next
End Sub

Nada mas que se queda en el "end if", y no termina el ciclo, me manda a depurar.

Respuesta
3

Revisa la siguiente respuesta:

Eliminar fila completa cuando en la celda columna A encuentre los valores "0"

Por ejemplo, adaptando la primer macro del enlace:

Sub Macro1()
'Por Dante Amor
  Dim uf As Long
  With ActiveSheet
    If .AutoFilterMode Then .AutoFilterMode = False
    uf = .Range("A" & Rows.Count).End(3).Row
    If uf > 6 Then
      .Range("A6:E" & uf).AutoFilter 5, 0, xlOr, ""
      .AutoFilter.Range.Offset(1).EntireRow.Delete
      .ShowAllData
    End If
  End With
End Sub

Puedes encontrar más sobre macros en mi canal de youtube:

Tutoriales Excel y Macros - YouTube

Te invito a que te suscribas.

1 respuesta más de otro experto

Respuesta
3

Corrí la macro y funciona bien. Si te envía el depurador debieras mostrarnos el mensaje de error que te aparece.

-Puede ser que la hoja esté protegida y no puede eliminar fila.

-Puedes poner un punto de interrupción en la línea del For. Al detenerse pasa el cursor sobre la variable 'uf' para observar el valor que toma como fin de rango.

También comenta si puede haber celdas combinadas o no... bueno, todo lo que puedas aportar para encontrar el problema, porque la macro funciona correctamente.

Dejo imagen de cómo colocar el punto de interrupción y observar valores:

Sdos!

Gracias, Elsa

Así es como la adapte, y esto es a donde llega, no tengo celdas combinadas, no esta protegida la hoja.

Muchas gracias

¿Probaste con la macro que te dejó Dante? ¿La veo valorada con 2 tildes por lo que debo entender que esa macro sí te resuelve el problema?

Por mi parte si no veo el valor que toma la variable uf no puedo hacer nada. En la imagen pareciera que hay una fila con títulos u otro tipo de campos que no debieran evaluarse... El problema parece estar en el contenido entre la fila 4 y la que obtienes con la variable uf.

Puedes enviarme tu hoja para hacerle el seguimiento. Sino por favor sigue con Dante, ya que también se ofreció a resolver tu consulta.

Sdos!

¡Gracias!

Esta es la "Hoja6 o Mmateriales" donde la estoy aplicando, la col "A" es el Código, la col "AC" es el Importe, en "AC" es donde están los ceros "0.00". Esta macro la voy a usar en otras 6 hojas. Gracias de antemano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas