Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default automatic unique value extract

If you're going to insert those subtotal rows via the data|subtotal, I'd
recommend that you put that unique range on a different worksheet.

And if you insert rows into that range that includes the APL range, then aren't
you going to end up with the values from the =subtotal()'s in the extracted
range?

That doesn't sound like a good idea to me.

MikeF wrote:

Well, hate to bug you on a Sunday, but have just noticed a fairly major issue.

Whenever I run DATA / SUBTOTAL on range a1.x200, of which the named range
APL is one column, the descending sort on the filter's ouptut range [ae1/etc]
is mitigated back to APL's source order. Causes big problems.

Have tried numerous sort routines - one would think it's fairly simple.
But NOTHING works until Subtotals are removed. Then everything is fine
again [upon next change in APL].

Simple Objective - to subtotal the large range of date without affecting the
descending sort in the filter's ouptut range [ae1/etc].
Again, should be simple, but ........

Thanx in advance Dave, for any ideas you have.
- Mike

"Dave Peterson" wrote:

I could tell that by the .sort syntax.

The real problem is that I don't use xl2007 enough to know it!

Glad you got it working.

MikeF wrote:

That's the trick Dave.
Completely rocks ... "quietly".
Thanx again for all your time and assistance ...!!

- Mike

PS -- Probably should've clarified --- am using xl 07.

"Dave Peterson" wrote:

I like the syntax for the old .sort (which still works in xl2007):

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
With Me
.Range("APL").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range("Ae1"), Unique:=True

With .Range("AE1").EntireColumn
.Sort key1:=.Columns(1), order1:=xlDescending, header:=xlYes
End With
End With
Application.ScreenUpdating = True

End Sub




MikeF wrote:

Dave,
Thanx again for your time and assistance.
The suggested code was not disruptive, but did not sort the output range.
- Mike

"Dave Peterson" wrote:

This seemed to work ok for me:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
With Me
.Range("APL").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range("Ae1"), Unique:=True

.Sort.SortFields.Add _
Key:=.Range("Ae1"), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal

With .Sort
.SetRange .Parent.Range("Ae1")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Application.ScreenUpdating = True

End Sub

Don't you have a header in AE1 from the advanced filter? I changed that .header
parm to xlyes.


MikeF wrote:

Dave,
My last msg was incorrect.
First off, I'm back on the routine that outputs to the same page, just for
temporary ease of use.
It's not the cursor that moves, it's merely the screen that "moves" so the
output range can be viewed every time the worksheet routine fires. The cursor
actually stays where it was. I could live with that if the worksheet routine
fired only when I changed a cell in the APL range.
But have discovered the real problem is that the worksheet routine fires
every time ANY cell on the sheet is changed. The source sheet, where APL
resides, is also a data-entry sheet for hundreds of cells, so it's quite
disruptive every time ANYTHING changes.
I guess the question is --- is there any way to have the worksheet routine
fire ONLY when something in APL changes?
Or if not - can the worksheet routine fire "quietly"?

Also ---
Do you have any other worksheet events firing?
No.

Did you add anything else to the worksheet_change event?
Yes, a routine that sorts the output in descending order.

'ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range( _
"Ae1")SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveSheet.Sort
.SetRange Range("Ae1")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

"Dave Peterson" wrote:

I couldn't get the cursor to move to a different cell.

Do you have any other worksheet events firing?

Did you add anything else to the worksheet_change event?

MikeF wrote:

Dave,
Thank you, that's great.
If I may bother you for one more detail [today!] that just came up as a
result of this ...

Now the active cell moves to the output range, as opposed to staying within
the source range where I made the change, which is what would be ideal.
Is there any way to make the routine "run quiet", thereby not moving to the
output range/sheet?

"MikeF" wrote:

Sort of a re-post:

Am looking to automatically extract unique values when anything in the
source list changes.

Have placed the following code at the Worksheet level, but it returns the
error msg "Method 'Range' of Object 'Worksheet" failed" .
Can anyone assist?
Thanx in advance.
- Mike

Private Sub Worksheet_Change(ByVal Target As Range)

Dim APL As IRange

Range("APL").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"Ae1"), Unique:=True

End Sub



--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

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
Extract unique data eva cheng Excel Discussion (Misc queries) 3 May 7th 10 06:19 PM
Extract unique data across columns in a row. Exanimo96 Excel Discussion (Misc queries) 1 January 23rd 08 01:17 AM
Extract Rows for UNIQUE and MAX Justin Excel Worksheet Functions 1 January 14th 07 02:21 AM
Extract Rows Unique to Two Sheets Noreen Excel Discussion (Misc queries) 3 December 31st 05 04:04 AM
Extract Unique Values, Then Extract Again to Remove Suffixes Karl Burrows Excel Discussion (Misc queries) 23 June 25th 05 10:37 PM


All times are GMT +1. The time now is 02:50 AM.

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"