Solved

Sum range for all worksheets starting with a specifc name

Posted on 2010-08-27
6
383 Views
Last Modified: 2012-08-14
In Worksheet.Name of "Main" in cell "K1", I need a formula that will give me the sum of all ranges A11:B12 on all worksheets with a name like "Series*".  

If my sheet names for "Series" remained static, I could use a formula like this:
=SUM(Series1_AA:Series9_AA!A11:B12)+SUM(SeriesA_AA:SeriesZ_AA!A11:B12)

But the problem is, these sheet names change regularly.  So one day my formula may need to be:
=SUM(Series1_BB:Series9_BB!A11:B12)+SUM(SeriesA_BB:SeriesZ_BB!A11:B12) OR
=SUM(Series1_CC:Series9_CC!A11:B12)+SUM(SeriesA_CC:SeriesZ_CC!A11:B12)

The one thing that remains consistent is the "Series" portion of the name.  I'm guess there a way that this can be done through VBA.  I'm open to any suggestions.  Thanks!



0
Comment
Question by:KP_SoCal
  • 3
  • 2
6 Comments
 
LVL 17

Accepted Solution

by:
calacuccia earned 500 total points
ID: 33544765
Put this formula where you want the result

=SeriesSum(AA11:B12)


And create this VBA Function

Function SumSeries(myRange As Range) As Variant
Dim rStr As String
Dim sh As Worksheet

rStr = myRange.Address

For Each sh In ThisWorkbook.Worksheets
    If Left(sh.Name, 6) = "Series" Then SumSeries = SumSeries + Application.WorksheetFunction.Sum(sh.Range(rStr))
Next sh

End Function

0
 

Author Closing Comment

by:KP_SoCal
ID: 33544931
Great!  Just what I needed, thanks so much!!!
0
 
LVL 17

Expert Comment

by:calacuccia
ID: 33545232
KP_SoCal:

You're welcome, thanks for the grade.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 81

Expert Comment

by:byundt
ID: 33546814
I realize that the question has already been answered, but you will probably encounter problems getting the user-defined function to refresh its results. If a user changes the name of a worksheet or inserts a new one into an existing workbook, the function will not update.

Workaround #1: Make the function volatile. Add the following statement right after your Dim statements:
Application.Volatile             'Function will recalculate after any change in any cell values. May make workbook sluggish if you use it in many places.

Workaround #2: Add a dummy parameter, and change the value of that parameter whenever you want the function to recalculate.
=SeriesSum(AA11:B12, $Z$1)                       'Z1 contains a dummy parameter which is not used in calculations. Changing it forces SeriesSum to recalculate

Brad

Function SumSeries(myRange As Range, Dummy As Variant) As Variant

Dim rStr As String

Dim sh As Worksheet



rStr = myRange.Address



For Each sh In ThisWorkbook.Worksheets

    If Left(sh.Name, 6) = "Series" Then SumSeries = SumSeries + Application.WorksheetFunction.Sum(sh.Range(rStr))

Next sh



End Function

Open in new window

0
 

Author Comment

by:KP_SoCal
ID: 33546910
Brad, this is outstanding.  I'm going to go with workaround #2 to avoid using the volatile function due to the size of my actual spreadsheet.  I really appreciate this extra bit of information.  Have a great weekend and thanks again for the extra mile on this. ;-)
0
 
LVL 17

Expert Comment

by:calacuccia
ID: 33547166
Thanks for follow-up Brad, I should have added that myself, but was to much in a hurry and it's been a while since I created a UDF :-)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial explains how to create a series of drop-down lists that are dependent upon prior selections to guide (“force”) the user to make the correct selection and reduce data errors within Microsoft Excel. Excel 2010 was used for this tutorial;…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now