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….

Thanks
Book1.xlsx
RayneAsked:
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
        NinPart
        NinDate
        NinGrpA
        NinGrpNew
        NinPrtA
        NinPrtNew
        NinTop                  ' Last column + 1
    End Enum
    
    Private Enum Nrp            ' Report sheet
        NrpFirstData = 5        ' row
        NrpDesc = 2             ' column: 2 = B
        NrpGrpA
        NrpGrpChg
        NrpPrtA
        NrpPrtChg
    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.
130130-Allocation-Report.xlsm
0
 
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...
Book1.xlsx
0
 
FaustulusCommented:
This will take a little time. I'm working on it.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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

The Barman - To indicate and explain clearly, I have attached a file
trackChangeAndSumUp.xlsx
0
 
RayneAuthor Commented:
Don't worry about points, I can open a follow up question for further points, I am very generous
Copy-ofUpdated.xlsx
0
 
RayneAuthor Commented:
this is all whats needs to happen
0
 
RayneAuthor Commented:
but dont worry about the registering the row Update to TRUE thing - thats doesn't needs to happen in this question.
0
 
RayneAuthor Commented:
CopyofUpdated explains the source data but summary needs to form out of that data :)
0
 
RayneAuthor Commented:
in a separate sheet
0
 
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.
pivotV.xlsx
0
 
RayneAuthor Commented:
please let me know howt o do the pivot in that format
0
 
RayneAuthor Commented:
AWESOME Faustulus
thats works like GOLD
Thank You :)
0
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.