Este código VBA pede o número de entrada (qualquer número até mesmo para ascendente, ímpar para descendente) teste com a função Mod
e ordene os dados "A1: B11" com cabeçalho você pode alterá-lo para seus dados reais na coluna 1 (A) ascendente, coluna 2 (B) crescente ou decrescente de acordo com o número de entrada
Sub DataSort()
Dim theRange As Range
Dim rep As Variant
Set theRange = Range("A1:B11")
rep = InputBox("Enter a number to decide order")
If rep Mod 2 = 0 Then
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=theRange.Columns(1).Cells, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=theRange.Columns(2).Cells, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange theRange
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
ElseIf rep Mod 2 = 1 Then
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=theRange.Columns(1).Cells, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=theRange.Columns(2).Cells, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange theRange
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End If
End Sub