Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 158
Default Data auto sorting

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2,344
Default Data auto sorting

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 158
Default Data auto sorting

Hi Shane,

Thanks for your help first. However, when I followed your instruction to
copy the code and then paste it to the sheet which my data is on in VBE (A
large blank space on the right navigation pane with two drop-down arrows
"General" & "Declarations" on the top). When I pasted the code, the colour of
the code statements changed to red. I went back to the worksheet and pasted
some new records under the last record but nothing was changed. When I
clicked one of cells in column A, the screen flashed back to VBE with an
alert dialogue box stated "Syntax Error" appeared. At the same time, a yellow
arrow pointing to the first line of your code and the first line was also
highlighted in gray.

Is there anything wrong I have done so that your code was not working?
Please kindly advise. Sorry for your time spent on my problem.

Regards.

"ShaneDevenshire" wrote:

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.

  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 22,906
Default Data auto sorting

Freshman

You got hit by line-wrap. A couple of the lines should be all one line, not
two.

Try this edited version with added line-continuations "_"

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub


Gord Dibben MS Excel MVP

On Tue, 23 Jan 2007 00:14:03 -0800, Freshman
wrote:

Hi Shane,

Thanks for your help first. However, when I followed your instruction to
copy the code and then paste it to the sheet which my data is on in VBE (A
large blank space on the right navigation pane with two drop-down arrows
"General" & "Declarations" on the top). When I pasted the code, the colour of
the code statements changed to red. I went back to the worksheet and pasted
some new records under the last record but nothing was changed. When I
clicked one of cells in column A, the screen flashed back to VBE with an
alert dialogue box stated "Syntax Error" appeared. At the same time, a yellow
arrow pointing to the first line of your code and the first line was also
highlighted in gray.

Is there anything wrong I have done so that your code was not working?
Please kindly advise. Sorry for your time spent on my problem.

Regards.

"ShaneDevenshire" wrote:

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.


  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 158
Default Data auto sorting

Hi Gord,

Sorry for bother you again. Another problem came up. When I pasted new
records in, an error dialogue box popped up with "Compile error: Variable not
defined". When I removed the "Open Explicit", another box showed up "Compile
error: Named argument not found" and the words of "DataOption1:=" in the
statement were highlighted in gray. Please kindly advise how to solve this.

Thanks & regards.

"Gord Dibben" wrote:

Freshman

You got hit by line-wrap. A couple of the lines should be all one line, not
two.

Try this edited version with added line-continuations "_"

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub


Gord Dibben MS Excel MVP

On Tue, 23 Jan 2007 00:14:03 -0800, Freshman
wrote:

Hi Shane,

Thanks for your help first. However, when I followed your instruction to
copy the code and then paste it to the sheet which my data is on in VBE (A
large blank space on the right navigation pane with two drop-down arrows
"General" & "Declarations" on the top). When I pasted the code, the colour of
the code statements changed to red. I went back to the worksheet and pasted
some new records under the last record but nothing was changed. When I
clicked one of cells in column A, the screen flashed back to VBE with an
alert dialogue box stated "Syntax Error" appeared. At the same time, a yellow
arrow pointing to the first line of your code and the first line was also
highlighted in gray.

Is there anything wrong I have done so that your code was not working?
Please kindly advise. Sorry for your time spent on my problem.

Regards.

"ShaneDevenshire" wrote:

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.





  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 35,218
Default Data auto sorting

DataOption# was added in xl2002.

This should(?) may work in previous versions:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range

Set iSect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not iSect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End Sub



Freshman wrote:

Hi Gord,

Sorry for bother you again. Another problem came up. When I pasted new
records in, an error dialogue box popped up with "Compile error: Variable not
defined". When I removed the "Open Explicit", another box showed up "Compile
error: Named argument not found" and the words of "DataOption1:=" in the
statement were highlighted in gray. Please kindly advise how to solve this.

Thanks & regards.

"Gord Dibben" wrote:

Freshman

You got hit by line-wrap. A couple of the lines should be all one line, not
two.

Try this edited version with added line-continuations "_"

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub


Gord Dibben MS Excel MVP

On Tue, 23 Jan 2007 00:14:03 -0800, Freshman
wrote:

Hi Shane,

Thanks for your help first. However, when I followed your instruction to
copy the code and then paste it to the sheet which my data is on in VBE (A
large blank space on the right navigation pane with two drop-down arrows
"General" & "Declarations" on the top). When I pasted the code, the colour of
the code statements changed to red. I went back to the worksheet and pasted
some new records under the last record but nothing was changed. When I
clicked one of cells in column A, the screen flashed back to VBE with an
alert dialogue box stated "Syntax Error" appeared. At the same time, a yellow
arrow pointing to the first line of your code and the first line was also
highlighted in gray.

Is there anything wrong I have done so that your code was not working?
Please kindly advise. Sorry for your time spent on my problem.

Regards.

"ShaneDevenshire" wrote:

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.




--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 158
Default Data auto sorting

Hi Dave, Gord & Shane,

Dave has solved my problem. Excellent. You three are all great. Thanks
again. Have a nice day.

Best regards.

"Dave Peterson" wrote:

DataOption# was added in xl2002.

This should(?) may work in previous versions:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range

Set iSect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not iSect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End Sub



Freshman wrote:

Hi Gord,

Sorry for bother you again. Another problem came up. When I pasted new
records in, an error dialogue box popped up with "Compile error: Variable not
defined". When I removed the "Open Explicit", another box showed up "Compile
error: Named argument not found" and the words of "DataOption1:=" in the
statement were highlighted in gray. Please kindly advise how to solve this.

Thanks & regards.

"Gord Dibben" wrote:

Freshman

You got hit by line-wrap. A couple of the lines should be all one line, not
two.

Try this edited version with added line-continuations "_"

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" & _
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub


Gord Dibben MS Excel MVP

On Tue, 23 Jan 2007 00:14:03 -0800, Freshman
wrote:

Hi Shane,

Thanks for your help first. However, when I followed your instruction to
copy the code and then paste it to the sheet which my data is on in VBE (A
large blank space on the right navigation pane with two drop-down arrows
"General" & "Declarations" on the top). When I pasted the code, the colour of
the code statements changed to red. I went back to the worksheet and pasted
some new records under the last record but nothing was changed. When I
clicked one of cells in column A, the screen flashed back to VBE with an
alert dialogue box stated "Syntax Error" appeared. At the same time, a yellow
arrow pointing to the first line of your code and the first line was also
highlighted in gray.

Is there anything wrong I have done so that your code was not working?
Please kindly advise. Sorry for your time spent on my problem.

Regards.

"ShaneDevenshire" wrote:

Hi Freshman,

You need to use a macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Range("A1:A" &
Range("A65536").End(xlUp).Row), Target)
If Not isect Is Nothing Then
Range("A1").CurrentRegion.Sort Key1:=Range("A1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub

Put this code in the sheet module for the sheet your data is on. Press Alt
F11 to open the VBE. Double-click the sheet name under your workbook name on
the top left navigation pane.
--
Cheers,
Shane Devenshire


"Freshman" wrote:

Dear experts,

I've a table of data and the records are filled up by rows. The new records
are copied from other files and pasted to my table. Column A is for clients'
numbers. What I want is whenever new records are pasted to the table, then
all records will be sorted by clients' numbers in ascending order
auotmatically. Please advise how it can be done.

Thanks in advance.



--

Dave Peterson

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
Sorting Ranges of Data Kevin Dunn Excel Worksheet Functions 2 October 16th 06 09:06 PM
Sorting data to match existing data Jack C Excel Discussion (Misc queries) 4 May 24th 06 09:48 AM
From several workbooks onto one excel worksheet steve Excel Discussion (Misc queries) 6 December 1st 05 08:03 AM
How to AUTO SORT A-Z new data in a column (not menual sorting) Nir Excel Worksheet Functions 2 November 8th 05 10:29 PM
sorting data in linked worksheets Allyson Excel Discussion (Misc queries) 0 June 8th 05 11:25 PM


All times are GMT +1. The time now is 09:43 AM.

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

About Us

"It's about Microsoft Excel"