Seleccionar rango, no fijo.

A través de diferentes procedimientos (VBA) he conseguido ordenar los datos de una tabla en excel, y los que me importan los he dividido insertando una fila en blanco. El paso final que debo de dar es volver a seleccionar desde el rango A1 hasta la fila en blanco para volver a ordenar los datos por la columna A y la B, pero no lo consigo.
Gracias anticipadas.
{"Lat":40.4469470596005,"Lng":-3.33984375}

1 Respuesta

Respuesta
1
Puedes utilizar el siguiente código para ordenar desde A1 hasta la última fila y columna con datos por la columna A y B
Sub ordena()
    'obtienes el total de filas desde A1
    Range("A1").Select
    Do While Not IsEmpty(ActiveCell)
        ActiveCell.Offset(1, 0).Select
        fila = ActiveCell.Row
    Loop
    'obtienes el total de columnas desde A1
    Range("A1").Select
    Do While Not IsEmpty(ActiveCell)
        ActiveCell.Offset(0, 1).Select
        columna = ActiveCell.Column
    Loop
    Range("A1").Select
    'Seleccionas rango de datos
    ActiveSheet. Range(Cells(1, 1), Cells(fila - 1, columna - 1)).Select
    'Ordena el rango de datos
    'OJO Especificar hoja

    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range(Cells(2, 1), Cells(fila, 1)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Hoja1").Sort.SortFields.Add Key:=Range(Cells(2, 2), Cells(fila, 2)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Hoja1").Sort
        .SetRange Range(Cells(1, 1), Cells(fila - 1, columna - 1))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Pruébalo y si tienes duda me comentas
Hola Nochebuena. Es la primera vez que entro en este foro y me he quedado impresionado de la rapidez de respuesta. Tu solución me ha funcionado perfectamente. Te agradezco de veras tu tiempo y dedicación.
Un saludo
Manu31500

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas