View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Neal Zimm Neal Zimm is offline
external usenet poster
 
Posts: 345
Default 4 column sort... Fools rush in....

Thanks. That's what I ended up doing.

"Hari Prasadh" wrote:

Hi Neal,

Probably you are asking for a code which could do 4 column sort in ONE
sorting operation. I dont know about that.

But programmatically you could do TWO sorting operations like the following
and get the SAME results.

Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, _
Key2:=Range("D1"), Order2:=xlAscending, _
Key3:=Range("A1"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal,

Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, _
Key2:=Range("C1"), Order2:=xlAscending, _
Key3:=Range("D1"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal,

Modify it to your requirements

Thanks a lot,
Hari
India


"Neal Zimm" wrote in message
...
Not knowing any better, I took the recorded code for a 3 column sort and
tried to turn it into a 4 column sort. Got run time 1004 object error.
Code
is below.

Is it possible to do what I'm trying this way? I'd rather not have to
select
different ranges of cells and do a 3 column sort, but I may have to.
So, have I made an error in the code, or is it just not possible?
Thanks.


Sub zsortbcda()
Application.ScreenUpdating = False

Columns("A:D").Select

Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, _
Key2:=Range("C1"), Order2:=xlAscending, _
Key3:=Range("D1"), Order3:=xlAscending, _
Key4:=Range("A1"), Order4:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal, DataOption4:=xlSortNormal

Range("A1").Select

Application.ScreenUpdating = True
End Sub
--
Neal Z