View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default VBA Filtered Subtotal - require sheet activation?

Range("G:G") is unqualified. In most cases, it'll refer to the active sheet.

You could use:

AllocsCount = Application.Subtotal(3, Worksheets("Allocs").Range("G:G")) - 1

so that you're more specific.

" wrote:

Hi all - I am trying to assign the sum and number of filtered results
to variables per below after filtering..

// FILTER ALLOCS SHEET
Sheets("Allocs").Range("A1").AutoFilter Field:=4, Criteria1:=TapsRic
Sheets("Allocs").Range("A1").AutoFilter Field:=5, Criteria1:=TapsDir

//ASSIGN SUBTOTAL VALUES TO VARIABLES
AllocsCount =
Sheets("Allocs").Application.WorksheetFunction.Sub total(3,
Range("G:G")) - 1
AllocsSum = Sheets("Allocs").Application.WorksheetFunction.Sub total(9,
Range("G:G"))

Now this works fine if I activate the "Allocs" sheet prior to running
those last 2 lines - however, as it is in a loop and it goes through
hundreds of lines it results in the screen flickering between 2 sheets
which is annoying. Is there anyway that I can achieve the same without
activating the sheet? It seems that the two variables when I MsgBox
them are the sum and number of rows on the other sheet that i want
active the whole time.

Thanks for any help
Will


--

Dave Peterson