Ejecutar Macro Ordenar en rango de celdas seleccionadas

Lo que necesito es evitar ir a la opción datos ordenar por tal celda de mayor a menor, lo que quiero es hacer un botón donde al seleccionar un rango que siempre es distinto al presionar sobre ordenar me ordene de mayor a menor esa selección

El rango de esa selección es de b1:p16, pero si selecciono el rango por ejemplo b21:p35 también me funcione, es decir que me ordene el rango activo.

Respuesta
1

Hacé clic derecho sobre el botón ya dibujado, opción Asignar macro (o ver Código si el botón es ActiveX).

En el Editor copiá esta macro. Lo que hará es ordenar el rango ya seleccionado por la col B (ajusta este detalle a gusto ya que no lo mencionas).

Sub OrdenaRangos()
'x Elsamatilde
rgo = Selection.Address
ini = Range(rgo).Range("A1").Row
fini = ini + Range(rgo).Rows.Count - 1
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
'ajustar letra de col
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("B" & ini & ":B" & fini), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range(rgo)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Range("B12").Select
End Sub

Sdos y no olvides valorar cuando el tema esté resuelto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas