Need help with sorting, please.

  • Thread starter Thread starter aapp81
  • Start date Start date
A

aapp81

i really need help w/ this sorting problem i'm having...

consider the following:

Sub SortBy()
Application.ScreenUpdating = False
Range("a1:aa1218").Select
Selection.Sort Key1:=Range("a1"), Order1:=xlAscending, Header:=xlYes
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("a1").Select
Application.ScreenUpdating = True
End Sub

i have that code on an option button
i have columns a:aa
every column except i:p has an option button over it's colum
heading...
(e.g. E1 is "description" and there's an option button there, R1 i
state, and so on...)

now, i can make 20-some macros based on the option button you selec
but i was hoping there's a way i can have 1 macro that if i select th
option button in col Q it will sort by Q, etc etc...

please, any help would mean a great deal..
 
One way:

Sub SortBy()
Application.ScreenUpdating = False
' select the cell before running the macro
Range("a:aa").Sort _
Key1:=ActiveCell, _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Application.ScreenUpdating = True
End Sub

Regards

Trevor
 
If you can live with just a tiny macro for each button here is what I came
up with.


Public tt As Range
Sub Button1_click()
Set tt = Range("A1")
Call SortBy
End Sub
Sub Button2_click()
Set tt = Range("B1")
Call SortBy
End Sub
Sub Button3_click()
Set tt = Range("C1")
Call SortBy
End Sub
'continue on with just a small macro for each button

Sub SortBy()
a = tt.Column
MsgBox tt.Address & "sortby macro"
Application.ScreenUpdating = False
Range(Cells(1, a), Cells(1218, a)).Activate
Selection.Sort Key1:=tt, Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
tt.Select
Application.ScreenUpdating = True

End Sub
 
Back
Top