¿Realizar un Sort de varios columnas hasta el ultimo valor de las celdas?

Necesito que el sort no me limete las celdas si no que busque hasta la ultima con valor

Código:

ActiveWorkbook. Worksheets("ASIENTOS"). SORT. SortFields. Clear
ActiveWorkbook.Worksheets("ASIENTOS").SORT.SortFields.Add Key:=Range( _
"X2:X105"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("ASIENTOS").SORT.SortFields.Add Key:=Range( _
"AE2:AE105"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("ASIENTOS").SORT.SortFields.Add Key:=Range( _
"B2:B105"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ASIENTOS").SORT
With ActiveWorkbook.Worksheets("ASIENTOS").SORT
".SetRange Range("A1:AF1", Range("A1").End(xlDown).Offset(-1, 0))" (esto coloque como ejemplo)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

1 Respuesta

Respuesta

¿Puedes intentar con este código por favor?

'Obtener la ultima fila vacía
RowFin = Range("b1048576").End(xlUp).Row
ActiveWorkbook.Worksheets("ASIENTOS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ASIENTOS").Sort.SortFields.Add Key:=Range( _
"X2:X" & RowFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("ASIENTOS").Sort.SortFields.Add Key:=Range( _
"AE2:AE" & RowFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("ASIENTOS").Sort.SortFields.Add Key:=Range( _
"B2:B" & RowFin), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ASIENTOS").Sort
.SetRange Range("A1:AF" & RowFin)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Debes obtener l última celda vacía cada vez que se va a ejecutar el ordenado.

Saludos y espero sea de utilidad!!

Suscríbete a mi canal: http://bit.ly/1KgurfF
Sigueme en Twitter https://twitter.com/RaduNordenhulk
Agregame en Facebook: http://on.fb.me/1oFUXVL
Sigue mis publicaciones en mi blog: http://radunordenhulk.blogspot.com/

¡Gracias! Ya lo he resuelto 

ActiveWorkbook.Worksheets("ASIENTOS").Sort.SortFields.Add Key:=Range( _
"AE2").End(xlDown).offset(0, 0))

Saludos

Genial, felicidades

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas