Solved

How to add another field to a pivot table using vba

Posted on 2015-02-05
4
62 Views
Last Modified: 2016-02-10
Hello,

I am working on pre-existing code.  I was asked to add an additional field to the pivot table called "Reason_Code".  I added it and it appears in the Pivot Table Field List but needs to be checked in order for it to appear in the pivot table itself

 Set PivotDataRange = rng
    Set PTCache = wb.PivotCaches.Create _
        (SourceType:=xlDatabase, _
        SourceData:=PivotDataRange, _
        Version:=xlPivotTableVersion12)
    Set sPT = PTCache.CreatePivotTable(TableDestination:=wsPiv.Cells(4, 1), TableName:="ScrapData", DefaultVersion:=xlPivotTableVersion12)
    
    With sPT.PivotFields( _
        "User_Transaction_Entered")
        .Orientation = xlPageField
        .Position = 1
    End With
    With sPT.PivotFields("Warehouse")
        .Orientation = xlPageField
        .Position = 1
    End With
    With sPT.PivotFields("Transaction_Date")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With sPT.PivotFields("Item_Code")
        .Orientation = xlRowField
        .Position = 1
    End With
    With sPT.PivotFields("Item_Description")
        .Orientation = xlRowField
        .Position = 2
    End With

 With sPT.PivotFields("Reason_Code")
        .Orientation = xlRowField
        .Position = 3   
 End With

    sPT.AddDataField sPT.PivotFields("Qty"), "Quantity", xlSum
    sPT.AddDataField sPT.PivotFields("SumOfAmount"), "Amount", xlSum
    
    'Change number VBA.Format
    With sPT.PivotFields("Amount")
        .NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
    End With
    
    With sPT.PivotFields("Quantity")
        .NumberFormat = "#,##0.00_);[Red](#,##0.00)"
    End With
    
    'Sort largest to smallest
    sPT.PivotFields("Item_Code").AutoSort _
        xlDescending, "Amount", sPT.PivotColumnAxis.PivotLines(2), 1
    
    'Remove grand totals for rows
    sPT.RowGrand = False
        
    'Remove subtotals for each item
    sPT.PivotFields("Item_Code").Subtotals = Array _
        (False, False, False, False, False, False, False, False, False, False, False, False)
    '******************************************
       
    sPT.TableStyle2 = "PivotStyleLight16"
    
    With wsPiv.Cells.Font
        .Name = "Calibri"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    
    'Change display to Classic pivot table style
    With sPT
        .InGridDropZones = True
        .RowAxisLayout xlTabularRow
    End With
                    
    'Activate pivot table sheet & save workbook
    wsPiv.Activate
    wsPiv.Range("B7").Select
    wb.Save
    wb.Close

Open in new window

0
Comment
Question by:chtullu135
  • 3
4 Comments
 

Author Comment

by:chtullu135
Comment Utility
When I copy the database, from which the excel pivot table is created (via automation), to my hard drive. And run the code from the local database, everything works fine.  The reason_code appears in the Pivot Table Fields List, and is checked and appears as a row in the Pivot Table.  It must be something in my installation.
0
 
LVL 25

Expert Comment

by:ProfessorJimJam
Comment Utility
can u portray here how do you want the Reason Code to be appeared? i am not sure if i understood your question.
0
 

Accepted Solution

by:
chtullu135 earned 0 total points
Comment Utility
I was able to get it working.  I found that I had not saved the changes and so when I initially tested the code, it failed.  My mistake.
0
 

Author Closing Comment

by:chtullu135
Comment Utility
It was my mistake
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

Approximate matching with VLOOKUP and MATCH seems to me to be a greatly under-used technique, and one which is vital for getting good performance out of large lookups. Until recently I would always have advised using an exact match for simplicity an…
Improved? Move/Copy Add-in Replacement - How to avoid the annoying, “A formula or sheet you want to move or copy contains the name XXX, which already exists on the destination worksheet.” David Miller (dlmille)  It was one of those days… I wa…
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.

763 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

8 Experts available now in Live!

Get 1:1 Help Now