ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Sort Method (https://www.excelbanter.com/excel-programming/293153-sort-method.html)

Squid[_3_]

Sort Method
 
I have the following code. For some reason Key2 is not being sorted the way
I need it. For my santity, I tried switching between ascending/descending
in key2 and both results same. Any ideas why? The sort range is columns
A:AJ. Column B contains numbers and Column D contains dates.


Private Sub Workbook_BeforeClose(Cancel As Boolean)

'sort contract workbook (Sheet1) only if Settlement4b.xls is not open

Dim Wsheet As Worksheet
Set Wsheet = Worksheets("Sheet1") 'Contracts workbook

If Not WorkbookOpen("Settlement4b.xls") Then
With Wsheet
.Select
.Range("A1").Sort _
Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes, _
Key2:=.Range("D1"), Order1:=xlDescending, Header:=xlYes
End With
End If


As aways Thanks!
Mike

End Sub



Bob Umlas[_3_]

Sort Method
 
A few things. You don't want to sort range A1, you probably want
Range("A1").CurrentRegion, or maybe Range("A1:AJ500")
Next - you don't want to say Header:=xlyes twice, tho it doesn't seem to
hurt.
"Squid" wrote in message
news:Po01c.457337$na.1094918@attbi_s04...
I have the following code. For some reason Key2 is not being sorted the

way
I need it. For my santity, I tried switching between ascending/descending
in key2 and both results same. Any ideas why? The sort range is columns
A:AJ. Column B contains numbers and Column D contains dates.


Private Sub Workbook_BeforeClose(Cancel As Boolean)

'sort contract workbook (Sheet1) only if Settlement4b.xls is not open

Dim Wsheet As Worksheet
Set Wsheet = Worksheets("Sheet1") 'Contracts workbook

If Not WorkbookOpen("Settlement4b.xls") Then
With Wsheet
.Select
.Range("A1").Sort _
Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes, _
Key2:=.Range("D1"), Order1:=xlDescending, Header:=xlYes
End With
End If


As aways Thanks!
Mike

End Sub





Tom Ogilvy

Sort Method
 
You shouldn't have Header in twice - header is for the entire sort area, not
for each key.

Other than that, I can't say. Try turning on the macro recorder and
sorting it manually. See what is recorded.

--
Regards,
Tom Ogilvy


"Squid" wrote in message
news:Po01c.457337$na.1094918@attbi_s04...
I have the following code. For some reason Key2 is not being sorted the

way
I need it. For my santity, I tried switching between ascending/descending
in key2 and both results same. Any ideas why? The sort range is columns
A:AJ. Column B contains numbers and Column D contains dates.


Private Sub Workbook_BeforeClose(Cancel As Boolean)

'sort contract workbook (Sheet1) only if Settlement4b.xls is not open

Dim Wsheet As Worksheet
Set Wsheet = Worksheets("Sheet1") 'Contracts workbook

If Not WorkbookOpen("Settlement4b.xls") Then
With Wsheet
.Select
.Range("A1").Sort _
Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes, _
Key2:=.Range("D1"), Order1:=xlDescending, Header:=xlYes
End With
End If


As aways Thanks!
Mike

End Sub





Chip Pearson

Sort Method
 
Your code is sorting only range A1. You need to sort all the
columns. Change

..Range("A1").Sort _
to
..UsedRange.Sort (...)


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"Squid" wrote in message
news:Po01c.457337$na.1094918@attbi_s04...
I have the following code. For some reason Key2 is not being

sorted the way
I need it. For my santity, I tried switching between

ascending/descending
in key2 and both results same. Any ideas why? The sort range

is columns
A:AJ. Column B contains numbers and Column D contains dates.


Private Sub Workbook_BeforeClose(Cancel As Boolean)

'sort contract workbook (Sheet1) only if Settlement4b.xls is

not open

Dim Wsheet As Worksheet
Set Wsheet = Worksheets("Sheet1") 'Contracts workbook

If Not WorkbookOpen("Settlement4b.xls") Then
With Wsheet
.Select
.Range("A1").Sort _
Key1:=.Range("B1"), Order1:=xlAscending,

Header:=xlYes, _
Key2:=.Range("D1"), Order1:=xlDescending,

Header:=xlYes
End With
End If


As aways Thanks!
Mike

End Sub






All times are GMT +1. The time now is 02:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com