I'm struggling with a sort function.
I would like to select a range, and with a macro attached to a button, sort only the range which I have selected. This obviously has something to do with Range("A1:H15").Select, I'm just not sure how to translate this so it applies only to a range which is currently selected. The columns are set and it always needs to apply to H, G, F, E, and C in that order.
Can anyone point me in the right direction?
Range("A1:H15").Select
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"H2:H15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"G2:G15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"F2:F15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"E2:E15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"C2:C15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Data (2)").Sort
.SetRange Range("A1:H15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
I would like to select a range, and with a macro attached to a button, sort only the range which I have selected. This obviously has something to do with Range("A1:H15").Select, I'm just not sure how to translate this so it applies only to a range which is currently selected. The columns are set and it always needs to apply to H, G, F, E, and C in that order.
Can anyone point me in the right direction?
Range("A1:H15").Select
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"H2:H15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"G2:G15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"F2:F15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"E2:E15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Data (2)").Sort.SortFields.Add2 Key:=Range( _
"C2:C15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Data (2)").Sort
.SetRange Range("A1:H15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub