Sum it Please

Hello All,

I am looking for a VBA solution to do this. I know pivot does this but there are format issues and other things users don’t like. I am staying away from pivot. So what I want to do:
There is a input sheet: where you see that there are groups and underneath those groups, there are parts.
Both the groups and parts have their allocated dollar numbers.
I need a vBA way that dynamically grabs the unqiue values from the table and puts them in a format (look at ‘DesiredSummaryFormat’ sheet
I explained in that sheet how the change (positive / negative)  gets added to the original number as the changed number column

So a dynamic way to create the summary table and then using simple r1c1 or cell formula to drag it across…
Please assist….

Who is Participating?
FaustulusConnect With a Mentor Commented:
The attached workbook has a macro by the name of SumInputData. You can call it from the Macros menu on the Developer tab or, if you are familiar with VBA, from the VBE window. This macro will convert your data on the DataInputSheet into a report on the sheet DesiredSummaryFormat following your design. Note that this sheet must have one blank report row to begin with. You can endow this row with the cell formats you require and even add formulas which will all be copied to all rows later added to the sheet when the report is prepared.
I am not sure that the two Change columns show the correct result. That is a minor matter. Please look at the available totals being written there. If you wish them to be computed in a different manner that is quite simple. Note also that I omitted the Change group totals intentionally. They can be reinstated if required.
At the top of the code sheet ReportMan you will find a number of constant variables and enums which you can adjust:-
    Const InputSheet As String = "DataInputSheet"
    Const ReportSheet As String = "DesiredSummaryFormat"
    Const TotalDesc As String = "Total"
    Private Enum Nin            ' Input sheet
        NinFirstData = 2
        NinGroup = 3            ' columns: 3 = C
        NinTop                  ' Last column + 1
    End Enum
    Private Enum Nrp            ' Report sheet
        NrpFirstData = 5        ' row
        NrpDesc = 2             ' column: 2 = B
    End Enum

Open in new window

For example, you can change the names of the worksheets. Just make sure that the name in the code is exactly the same as in the workbook. You can change the first row of data and all the columns for both worksheets. I think the variable names are rather self-explanatory. Just bear in mind that any enum can be assigned an integer in the manner shown. Where no value is assigned the first enum is assigned a zero and all others a value incremented by 1 from the previous enum in the list, whether it has an assigned number or a "natural" one. However, if you need help with any of this do let me know.
SteveConnect With a Mentor Commented:
OK... first using 2007+ Highlight your DataInputTable go to DATA > INSERT > TABLE
This will creat a table to allow for use of table refs in the formula rather than the named ranges.

then use SUMIFS rather than SUMPRODUCT in the desired table.

you say:
GRPAllocated$Changed = GRPAllocated$+changes
wheres changes =GRPAllocated$NEW- GRPAllocated$

this means that
GRPAllocated$Changed  =GRPAllocated$+GRPAllocated$NEW- GRPAllocated$
this means that:
GRPAllocated$Changed  = GRPAllocated$NEW
Is this correct?

Attached file with SUMIFS and TABLE...
This will take a little time. I'm working on it.
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

RayneAuthor Commented:
Hello All,
Thanks for your reply so far.

The Barman - To indicate and explain clearly, I have attached a file
RayneAuthor Commented:
Don't worry about points, I can open a follow up question for further points, I am very generous
RayneAuthor Commented:
this is all whats needs to happen
RayneAuthor Commented:
but dont worry about the registering the row Update to TRUE thing - thats doesn't needs to happen in this question.
RayneAuthor Commented:
CopyofUpdated explains the source data but summary needs to form out of that data :)
RayneAuthor Commented:
in a separate sheet
RayneAuthor Commented:
I guess I can use a pivot, only if users make changes, all they do it refresh the pivot correct - -its that possible from my source data that I explained. Please Assist.
RayneAuthor Commented:
please let me know howt o do the pivot in that format
RayneAuthor Commented:
AWESOME Faustulus
thats works like GOLD
Thank You :)
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.