Ayuda con la utilización de macro para identificar datos de las columnas en Microsoft Excel

Tengo una macro que me realiza varias actividades, como resultante me graba un file en un path determinado, quiero a través de una macro identificar en la columna A cual es la ultima con datos Ejemplo la última fila es A250, el código de la macro debe seleccionar desde A251 a A65536 y eliminar todo este rango de filas seleccionados, Gracias por su soporte

1 Respuesta

Respuesta
1
¿Si en el rango que dices no hay datos, para qué quieres borrar las filas?.
[email protected]
Gracias por tu oportuna pregunta, esta macro llama a un archivo que contiene varias fórmulas desde la columna O a la Z desde las fila 1 a la 5000, este es el rango máximo de registros con los que trabajare.
Los datos a procesar son variables, si el archivo a procesar solo tiene 1000 registros necesito eliminar el rango que no utilizo osea los 4000 de la columna O a la Z. aplique inicialmente este código que elimina celda por celda:
Dim mitexto As String
mitexto = "BORRARTODO"
'se evalúa la col A
Range("A1").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = mitexto Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
Al analizarlo y ejecutarlo se demora una eternidad ... por eso aplique este código, que te busca el ultimo dato aplicado a la Columna A, inserta un comentario en la fila inmediata, selecciona desde allí hasta 65536 y elimina todas las filas.
Esto lo realiza en franción de segundos, me costo unas canas verdes ya que no manejo los códigos de forma adecuada pero tengo mis trucos y con el soporte de esta página lo he logrado.
GRACIAS POR TU OPORTUNA CONSULTA, he aprendido bastante de esta página y el día de hoy fue mi primera consulta.
Ya resolví el inconveniente como te comento, te molestare si se presenta alguna duda
[email protected]
Dim filalibre As Integer
ActiveWorkbook.Sheets(2).Activate 'selecciona la Hoja 2
Range("A1").Select
'el control se hará sobre la columna A, a partir de la fila
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
'si la celda contiene datos, pasa a la fila siguiente
Wend
filalibre = ActiveCell.Row
ActiveCell.FormulaR1C1 = "SIN DECISION"
Range("A65536", Range("A65536").End(xlUp)).Select
Selection.EntireRow.Delete

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas