Borrar filas Post Autofiltro

Tengo el siguiente código en una macro para eliminar las filas que en la columna "Libre utilización" tenga un valor <=0 o que esten vacias.
Do While Not IsEmpty(ActiveCell.Offset(0, -10))
Select Case ActiveCell.Value
Case Is <= 0 Or Empty
ActiveCell.EntireRow.Delete
Case Else
ActiveCell.Offset(1, 0).Select
End Select
Loop
El punto es que el fichero a trabajar tiene algo así como 10500 filas y el proceso de eliminar fila por fila demora un poco. Por esto se me ocurrió que la macro creara un autofiltro y que filtrara la columna "Libre utilización" con los criterios mencionados, para después seleccionar las columnas que quedan y eliminarlas todas juntas.
Creo el autofiltro y filtro las columnas que deseo borrar, pero tengo el problema de seleccionar solo las columnas visibles para borrarlas, ya que también selecciona las ocultas. Por favor ayúdenme con esto.
Prometo finalizar la pregunta. :(

1 respuesta

Respuesta
1
Utiliza un filtro avanzado. Graba una macro para extraer el código. La idea es usar filtro avanzado para que te saque en otro rango las celdas no vacías de tu columna. Luego en tu(s) columna(s) usar Range("A:B"). Clearcontents y luego copias el ranfo en donde hiciste el filtro avanzado y lo pegas nuevamente en tus columnas originales. Adicionalmente si tus datos están alimentando fórmulas es muy conveniente que antes de la operación ajustes application. Calculation=xlmanual para que no se recalcule y al final ajustes nuevamente application. calculation=xlautomatic. De esta manera el proceso se agilizara
No se si lo que propones sera efectivamente más rapido que recorrer la columna celda por celda eliminando las filas que corresponda, pero aun así tu respuesta me brindo una perspectiva distinta para abordar el problema.
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas