ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Sorting a Range using VBA (https://www.excelbanter.com/excel-programming/338412-sorting-range-using-vba.html)

SystemHack[_8_]

Sorting a Range using VBA
 

Assume that I have a variable "NumCount" and I want to sort the range of
cells from (1,B) to (2,NumCount), sort by the first column accending
order. What kind of code could I use ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile: http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388


Nigel

Sorting a Range using VBA
 

The following is literally what you asked .....

Range(Cells(1, "B"), Cells(2, NumCount)).Sort Key1:=Cells(1, NumCount)

but be careful in specifying the range sort keys. You can also use the
number of the column eg 2 not "B" as you asked.
also note that when defining a range using Cells the first value is the row
number, the second the column.
--
Cheers
Nigel



"SystemHack" wrote
in message ...

Assume that I have a variable "NumCount" and I want to sort the range of
cells from (1,B) to (2,NumCount), sort by the first column accending
order. What kind of code could I use ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile:

http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388




SystemHack[_9_]

Sorting a Range using VBA
 

Thanks a ton. The problem was I didn't know you could embed the Cells
command into a Range function. That made everyting sooo much easier.
:) Exactly what I as looking for thanks !


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile: http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388


SystemHack[_10_]

Sorting a Range using VBA
 

Ok I can get this to work on the same page but not on a different sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile: http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388


Nigel

Sorting a Range using VBA
 
the sort key must be defined in context as well.

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Sheet(2).Cells(1, 2)

or

With Sheet(2)
.Range(Cells(1,2),Cells(12,2)).Sort Key1:=.Cells(1,2)
End With
--
Cheers
Nigel



"SystemHack" wrote
in message ...

Ok I can get this to work on the same page but not on a different sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile:

http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388




Nigel

Sorting a Range using VBA
 
sorry meant to use Sheets not Sheet !!

--
Cheers
Nigel



"Nigel" wrote in message
...
the sort key must be defined in context as well.

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Sheet(2).Cells(1, 2)

or

With Sheet(2)
.Range(Cells(1,2),Cells(12,2)).Sort Key1:=.Cells(1,2)
End With
--
Cheers
Nigel



"SystemHack"

wrote
in message ...

Ok I can get this to work on the same page but not on a different sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile:

http://www.excelforum.com/member.php...o&userid=26614
View this thread:

http://www.excelforum.com/showthread...hreadid=399388






Mike Fogleman

Sorting a Range using VBA
 
Dim NumCount As Long

NumCount = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:B" & NumCount).Sort Key1:=Range("A1")
End Sub

Mike F
"SystemHack" wrote
in message ...

Assume that I have a variable "NumCount" and I want to sort the range of
cells from (1,B) to (2,NumCount), sort by the first column accending
order. What kind of code could I use ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile:
http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388




Alok

Sorting a Range using VBA
 
Is it preferable to change the other Cells to .Cells as well?

With Sheet(2)
.Range(.Cells(1,2),.Cells(12,2)).Sort Key1:=.Cells(1,2)
End With

Alok

"Nigel" wrote:

the sort key must be defined in context as well.

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Sheet(2).Cells(1, 2)

or

With Sheet(2)
.Range(Cells(1,2),Cells(12,2)).Sort Key1:=.Cells(1,2)
End With
--
Cheers
Nigel



"SystemHack" wrote
in message ...

Ok I can get this to work on the same page but not on a different sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack
------------------------------------------------------------------------
SystemHack's Profile:

http://www.excelforum.com/member.php...o&userid=26614
View this thread: http://www.excelforum.com/showthread...hreadid=399388





Tom Ogilvy

Sorting a Range using VBA
 
It isn't preferable, it is required in this case where Sheet(2) isn't the
active sheet. Otherwise, range refers to Sheet(2) and the unqualified
cells refers to the activesheet (or the sheet containing the code if in a
worksheet module). In any event, this situation is guaranteed to raise an
error.

--
Regards,
Tom Ogilvy
"Alok" wrote in message
...
Is it preferable to change the other Cells to .Cells as well?

With Sheet(2)
.Range(.Cells(1,2),.Cells(12,2)).Sort Key1:=.Cells(1,2)
End With

Alok

"Nigel" wrote:

the sort key must be defined in context as well.

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Sheet(2).Cells(1,

2)

or

With Sheet(2)
.Range(Cells(1,2),Cells(12,2)).Sort Key1:=.Cells(1,2)
End With
--
Cheers
Nigel



"SystemHack"

wrote
in message

...

Ok I can get this to work on the same page but not on a different

sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack


------------------------------------------------------------------------
SystemHack's Profile:

http://www.excelforum.com/member.php...o&userid=26614
View this thread:

http://www.excelforum.com/showthread...hreadid=399388







STEVE BELL

Sorting a Range using VBA
 
Tom,

Thanks for pointing this out!

It may explain some of the problems I keep running into with specifying
ranges and cells...
(I was just getting ready to write a request to help...)

--
steveB

Remove "AYN" from email to respond
"Tom Ogilvy" wrote in message
...
It isn't preferable, it is required in this case where Sheet(2) isn't the
active sheet. Otherwise, range refers to Sheet(2) and the unqualified
cells refers to the activesheet (or the sheet containing the code if in a
worksheet module). In any event, this situation is guaranteed to raise
an
error.

--
Regards,
Tom Ogilvy
"Alok" wrote in message
...
Is it preferable to change the other Cells to .Cells as well?

With Sheet(2)
.Range(.Cells(1,2),.Cells(12,2)).Sort Key1:=.Cells(1,2)
End With

Alok

"Nigel" wrote:

the sort key must be defined in context as well.

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Sheet(2).Cells(1,

2)

or

With Sheet(2)
.Range(Cells(1,2),Cells(12,2)).Sort Key1:=.Cells(1,2)
End With
--
Cheers
Nigel



"SystemHack"

wrote
in message

...

Ok I can get this to work on the same page but not on a different

sheet.
This is the code I am trying to use.


Private Sub CommandButton1_Click()

Sheets(2).Range(Cells(1, 2), Cells(12, 2)).Sort Key1:=Cells(1, 2)

End Sub

Any ideas why this wouldn't work ?


--
SystemHack

------------------------------------------------------------------------
SystemHack's Profile:
http://www.excelforum.com/member.php...o&userid=26614
View this thread:

http://www.excelforum.com/showthread...hreadid=399388










All times are GMT +1. The time now is 01:23 PM.

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