Borrar filas con determinado criterio

Lo primero, si en el rango s1:s13 tienes celdas en blanco, pon un punto: no se verá nada, pero la celda no estará vacía. Ahora enciende la grabadora de macros y haz lo siguiente:
Selecciona la columna es, Edición-Buscar-Reemplazar:
En el campo "Buscar" pon 0, y en "Reemplazar", no pongas nada. Acepta
Luego
Edición-Ir a-Especial-Celdas en blanco
-Aceptar.
Edición-Eliminar-Toda la fila
Para la grabadora
Esta respuesta que te doy es muy intuitiva, pero efectiva
Si me puntúas esta pregunta, con gusto responderé a la otra. No dudes en preguntar si tuvieras cualquier duda

1 Respuesta

Respuesta
1
O.K. Pega la siguiente macro, si no te entendí mal, es ésto lo que quieres:
Sub eliminarfilascero()
Range("S14").Activate
While ActiveCell.Value <> ""
If ActiveCell.Value = 0 Then
Selection.EntireRow.Delete
ActiveCell.Offset(1, 0).Activate
Else
ActiveCell.Offset(1, 0).Activate
End If
Wend
End Sub
Como truco adicional: si la lista que tienes es muy larga, al ejecutarla se observa en pantallacómo se va realizando. Bien, con la siguiente sentencia se evita esto, que además de molesto, hace la macro más lenta:
Application.ScreenUpdating = False
Esta sentencia colócala justo despues de Sub eliminarfilascero().
Lo dicho: tu macro quedará más profesional, y se ejecutará mucho más deprisa.
Cualquier duda que te quede, no dudes en preguntar.
Hola [email protected]: Tengo un libro con varias hojas en las que, mediante una macro, deseo eliminar las filas que se encuentren vacías o sean cero. Los datos no terminan en una misma fila. ¿Alguna sugerencia? Las filas de inician en la celda S14 en todas las hojas. Una pregunta adicional todas las hojas se encuentran protegidas, hice una macro para quitar la protección pero siempre me pide la clave.. ¿hay alguna manera de grabar en el macro la clave?
Saludos y de antemano gracias por su respuesta
Muchas gracias por tu respuesta y tu tiempo... pero me parece que no fui muy claro. Lo que estiy haciendo es un cuadro de necesidades en donde pongo una serie de items. Algo como
item 1T 2T 3T 4T Total
A 0 0 0 0 0
B 1 0 0 1 2
C 5 15 10 10 40
D 0 0 0 0 0
Como veras Total es una fórmula y quiero quitar todas las filas que tengan valor 0. Algo así como usar un For o un Do while para ir recorriendo hacia abajo esa columna e ir quitando las filas con valor cero. Al final tendría solo items que se deberán adquirir. Una vez más muchas gracias.
Hola: ¿Ahora esta casi perfecto (esto es lo que tenia en mente) el único inconveniente que le veo es que cuando en la columna hay dos o más ceros seguidos solo borra 1 de ellos.Que instrucción se le podría agregar para solucionar esto?. Una vez más muchas gracias por tu tiempo y paciencia
Tienes toda la razón, haces muy bien en comprobar las respuestas:
La macro lo que hace es comprobar si la celda no está vacía. Si no lo está, mira a ver si el resultado es cero. Si es distinto, baja a la siguiente fila. Si es igual a cero, elimina la fila entera. El error en el código que te dí, es que cuando eliminaba la fila también bajaba a la siguiente fila, lo cual no está bien, pues al eliminar, ya nos hemos situado el la fila siguiente, por tanto, el código válido es igual que el anterior, pero quitando una de las sentencias, quedando por tanto de la siguiente manera:
Sub eliminarfilascero()
Range("S14").Activate
While ActiveCell.Value <> ""
If ActiveCell.Value = 0 Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Wend
End Sub
Espero haberte sido de ayuda, y no olvides finalizar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas