Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Get distinct rows from different worksheets into another worksheet

I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled sheet in
desc order.

Plz help.

Nikhil

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Get distinct rows from different worksheets into another worksheet

Data=Filter=Advanced filter has the option of getting a list of unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i
want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled sheet
in
desc order.

Plz help.

Nikhil



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Get distinct rows from different worksheets into another works

Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which should be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i
want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled sheet
in
desc order.

Plz help.

Nikhil




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Get distinct rows from different worksheets into another works

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i
want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Get distinct rows from different worksheets into another works

Thanks once again..... however i am getting an error

the error occurs on line -

if lcase sh.Name < "summary" then

another error which occurs when i copy the second set of module function in
summary sheet.. that occurs on the first line...

Private Sub Application.Calculate()

May i also mention that i would not like to copy data from all the
worksheetss..but some selected 12 worksheets of a total of 15 worksheets to
the summary sheet.

Appreciate your help once again.

Nikhil
"Tom Ogilvy" wrote:

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i
want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil









  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Get distinct rows from different worksheets into another works

Thanks once again..... however i am getting an error

the error occurs on line -

if lcase sh.Name < "summary" then

another error which occurs when i copy the second set of module function in
summary sheet.. that occurs on the first line...

Private Sub Application.Calculate()

May i also mention that i would not like to copy data from all the
worksheetss..but some selected 12 worksheets of a total of 15 worksheets to
the summary sheet.

Appreciate your help once again.

Nikhil


"Tom Ogilvy" wrote:

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in different
sheets)..I want to compile distinct records from these worksheets into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct data...i
want
to use vlookup to get sales figures and then sort the data on sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil







  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Get distinct rows from different worksheets into another works

if lcase(sh.Name) < "summary" then


Private Sub Worksheet_Calculate()

Adjust the code to process the sheets you want. (or exclude those you don't)

--
Regards,
Tom Ogilvy

"Nikhil" wrote in message
...
Thanks once again..... however i am getting an error

the error occurs on line -

if lcase sh.Name < "summary" then

another error which occurs when i copy the second set of module function
in
summary sheet.. that occurs on the first line...

Private Sub Application.Calculate()

May i also mention that i would not like to copy data from all the
worksheetss..but some selected 12 worksheets of a total of 15 worksheets
to
the summary sheet.

Appreciate your help once again.

Nikhil


"Tom Ogilvy" wrote:

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which
should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of
unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and
got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy
to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in
different
sheets)..I want to compile distinct records from these worksheets
into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct
data...i
want
to use vlookup to get sales figures and then sort the data on
sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil









  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 44
Default Get distinct rows from different worksheets into another works

Hi...

Sir, I guess I still need your help....!!

I did copy the code but it gives an error....
at the line...

set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))

the error message is : Compile Error. Invalid or unqualified reference

Plz help... I am not conversant with VB coding in Excel...therefore request
you to plz help me execute the code.

Nikhil


"Tom Ogilvy" wrote:

if lcase(sh.Name) < "summary" then


Private Sub Worksheet_Calculate()

Adjust the code to process the sheets you want. (or exclude those you don't)

--
Regards,
Tom Ogilvy

"Nikhil" wrote in message
...
Thanks once again..... however i am getting an error

the error occurs on line -

if lcase sh.Name < "summary" then

another error which occurs when i copy the second set of module function
in
summary sheet.. that occurs on the first line...

Private Sub Application.Calculate()

May i also mention that i would not like to copy data from all the
worksheetss..but some selected 12 worksheets of a total of 15 worksheets
to
the summary sheet.

Appreciate your help once again.

Nikhil


"Tom Ogilvy" wrote:

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which
should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of
unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and
got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy
to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in
different
sheets)..I want to compile distinct records from these worksheets
into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct
data...i
want
to use vlookup to get sales figures and then sort the data on
sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil










  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Get distinct rows from different worksheets into another works

Try:

set rng = sh.range(sh.cells(1,1),sh.cells(rows.count,1).End( xlup))

And it looks like you may have to fix this line, too:

set rng = sh1.range(sh1.cells(2,1),sh1.cells(rows.count,1).E nd(xlup))

Nikhil wrote:

Hi...

Sir, I guess I still need your help....!!

I did copy the code but it gives an error....
at the line...

set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))

the error message is : Compile Error. Invalid or unqualified reference

Plz help... I am not conversant with VB coding in Excel...therefore request
you to plz help me execute the code.

Nikhil

"Tom Ogilvy" wrote:

if lcase(sh.Name) < "summary" then


Private Sub Worksheet_Calculate()

Adjust the code to process the sheets you want. (or exclude those you don't)

--
Regards,
Tom Ogilvy

"Nikhil" wrote in message
...
Thanks once again..... however i am getting an error

the error occurs on line -

if lcase sh.Name < "summary" then

another error which occurs when i copy the second set of module function
in
summary sheet.. that occurs on the first line...

Private Sub Application.Calculate()

May i also mention that i would not like to copy data from all the
worksheetss..but some selected 12 worksheets of a total of 15 worksheets
to
the summary sheet.

Appreciate your help once again.

Nikhil


"Tom Ogilvy" wrote:

Sub Macro1()
Dim bHeader as Boolean, sh1 as Worksheet
Dim sh as Worksheet, rng as Range, rng1 as Range
Dim rng2 as Range
set sh1 = Worksheets("Summary")
sh1.Cells.ClearContents
for each sh in Worksheets
if lcase sh.Name < "summary" then
set rng = sh.range(.cells(1,1),.cells(rows.count,1).End(xlup ))
set rng1 = rng.Resize(,4)
set rng2 = sh1.cells(rows.count,1).End(xlup)(2)
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
end if
if not bHeader then
rng2.EntireRow.Delete
bHeader = true
end if
Next
set rng = sh1.range(.cells(2,1),.cells(rows.count,1).End(xlu p))
set rng1 = rng.Resize(,4)
set rng2 = sh1.Range("E2")
rng1.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rng2, _
Unique:=True
sh1.Range("A1").EntireColumn.Resize(,4).Delete
End Sub


Then in Sheet Summary's code module

Private Sub Application.Calculate()
if not isempty(me.Range("A1")) then
sh1.Cells.Sort Key1:=Range("E2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
end if
End Sub

--
Regards,
Tom Ogilvy


"Nikhil" wrote in message
...
Thanks for the help... But let me clarify....

the data is not in 1 column...i want to copy distinct rows of data.....

e.g. i have three (or more) sheets

Sheet1 -

A B C D
1 2 3 4
5 6 7 8
5 6 7 8

and sheet2 -

A B C D
8 9 10 11
5 6 7 8
12 13 14 15

the result i want to compile in say sheet3 should be

A B C D
1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15

thereafter using vlookup i can get the sales figure in col E....
now i would like the data in sheet3 to automatically get sorted on the
sales figures in col E.

Plz note that i would be adding data to new sheets...all of which
should
be
compiled in sheet3

any of the column in sheet 1 or 2 might contain a blank cell

Hope you could help me yet again...

Regards

Nikhil

"Tom Ogilvy" wrote:

Data=Filter=Advanced filter has the option of getting a list of
unique
values.

It is also supported by VBA code.

I turned on the macro recorder and executed the actions manually, and
got
this:

Sub Macro1()
Range("A1:A56").Select
Application.CutCopyMode = False
Range("A1:A56").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), _
Unique:=True
Range("G1").Select
Selection.Sort Key1:=Range("G2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub

You should be able to generalize it to do what you want. You can copy
to
another sheet.

--
Regards,
Tom Ogilvy



"Nikhil" wrote in message
...
I have data in some sheets (the same data can be repeated in
different
sheets)..I want to compile distinct records from these worksheets
into
another sheet...prefereably using vba code.

I do not want to use a formula...since once i get the distinct
data...i
want
to use vlookup to get sales figures and then sort the data on
sales...

I also want that the data automatically gets sorted in the compiled
sheet
in
desc order.

Plz help.

Nikhil











--

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
Ignore Hidden Rows and Count of distinct values Anuma (GGK Tech) Excel Worksheet Functions 3 April 13th 10 02:00 AM
Formula for assigning distinct name to first instance in a list ofduplicate rows. NickNameGoesHere Excel Worksheet Functions 1 March 16th 08 08:01 AM
Get distinct rows from different worksheets into another worksheet Nikhil Excel Discussion (Misc queries) 8 July 15th 06 08:04 PM
copy nonblank rows from many worksheets and paste them onto one worksheet starman Excel Programming 2 June 21st 06 12:21 PM
Sum Distinct Rows in PivotTable Jay Charts and Charting in Excel 0 January 18th 06 03:00 PM


All times are GMT +1. The time now is 04:34 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"