Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 258
Default Sort Problem

I want to sort all worksheets without selecting them. I was attempting to
alter some code I got from Norman Jones which allowed me to perform other
functions with out actually selecting the worksheet, but it only seems to
sort the active worksheet. What am I missing?



Dim SH As Worksheet

For Each SH In ActiveWorkbook.Worksheets

Range("A3:h1301").Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Next SH


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Sort Problem


Hello Patrick,

The code as it is written is defaulting to the ActiveSheet
(Range("A3:h1301").Select). Notice the words Select and Selection in
the code are not qualified with a worksheet name. Without the
qualifier, the system defaults to the ActiveSheet. Here is the amended
code.
_____________________

Dim SH As Worksheet

For Each SH In ActiveWorkbook.Worksheets

SH.Range("A3:h1301").Sort Key1:=Range("A4"), Order1:=xlAscending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Next SH
_____________________

Sincerely,
Leith Ross


--
Leith Ross
------------------------------------------------------------------------
Leith Ross's Profile: http://www.excelforum.com/member.php...o&userid=18465
View this thread: http://www.excelforum.com/showthread...hreadid=488326

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 923
Default Sort Problem

You will also need to qualify the sortkey to the appropriate sheet e.g......

SH.Range("A3:H1301").Sort Key1:=SH.Range("A4"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal


--
Cheers
Nigel



"Leith Ross" wrote
in message ...

Hello Patrick,

The code as it is written is defaulting to the ActiveSheet
(Range("A3:h1301").Select). Notice the words Select and Selection in
the code are not qualified with a worksheet name. Without the
qualifier, the system defaults to the ActiveSheet. Here is the amended
code.
_____________________

Dim SH As Worksheet

For Each SH In ActiveWorkbook.Worksheets

SH.Range("A3:h1301").Sort Key1:=Range("A4"), Order1:=xlAscending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Next SH
_____________________

Sincerely,
Leith Ross


--
Leith Ross
------------------------------------------------------------------------
Leith Ross's Profile:

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



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 747
Default Sort Problem

An unqualified Range defaults to the active sheet. So the statement:

Range("A3:h1301").Select

just selects this range in the active sheet. If you have 3 sheets then your
code, since it refers to the selected range, sorted this same range in the
active sheet 3 times.

There is seledom a need to select anything. Just identify it and do whatever
to the identified object (range, chart, shape etc.). Selecting is essentially
just a screen event and it limits what you can do because you can't select
something that is not in the active sheet. It also slows code execution. For
example, to clear the contents of range A1:A10 on sheet ("Data") if this is
NOT the active sheet:
Sheets("Data").Range("A1:A10").ClearContents

Changed code:
Dim SH As Worksheet
For Each SH In ActiveWorkbook.Worksheets

SH.Range("A3:h1301").Sort Key1:=SH.Range("A4"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, atchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

Next SH

Regards,
Greg


"Patrick Simonds" wrote:

I want to sort all worksheets without selecting them. I was attempting to
alter some code I got from Norman Jones which allowed me to perform other
functions with out actually selecting the worksheet, but it only seems to
sort the active worksheet. What am I missing?



Dim SH As Worksheet

For Each SH In ActiveWorkbook.Worksheets

Range("A3:h1301").Select
Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Next SH



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
A "sort" problem comotoman Excel Discussion (Misc queries) 1 September 28th 05 10:48 PM
Sort Problem andyp161 Excel Worksheet Functions 1 September 5th 05 12:19 PM
sort problem with first row [email protected] Excel Programming 1 July 15th 05 03:03 PM
Sort Problem [email protected] Excel Programming 6 May 13th 05 06:33 PM
Sort Problem jdb Excel Discussion (Misc queries) 1 January 10th 05 11:05 PM


All times are GMT +1. The time now is 11:30 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"