Question : 2 Pivot Tables in VBA

Hi
I have a macro which, among other things, creates 2 pivot tables.  The source data for each is on different tabs and the resulting tables should be on different tabs.  I cheated and used the macro recorder to get the code, then copied it with some changes for the second one.

The first one works fine, but the second one gives "Run-time error: 5.  Invalid procedure call or argument".  I'm not sure why.  I thought, at first, that it might be that, having copied the code, it was trying to call both of them PivotTable1, so I changed the second to PivotTable2.  Everything else is the same other than my changing where the source data is and where the table destination is.

I'm awarding 500 points for a quick solution.

Thanks
Sarah
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
Sub CF_PivotTable()

'   CREATE A PIVOT TABLE FROM THE NON DISCOUNT INVOICES



    Sheets.Add
    ActiveSheet.Name = "Summary"
    
    Sheets("Summary list - all open items b").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 0).Select
    lRow = ActiveCell.Row

    
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Summary list - all open items b!R1C1:R" & lRow & "C11", Version:= _
        xlPivotTableVersion10).CreatePivotTable TableDestination:="Summary!R1C1", _
        TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
    Sheets("Summary").Select
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Net due dt")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Amount in local cur."), _
        "Sum of Amount in local cur.", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveWorkbook.ShowPivotTableFieldList = False
    ActiveCell.Offset(0, 1).Columns("A:C").EntireColumn.Select
    Selection.Style = "Comma"
    ActiveCell.Offset(1, 3).Range("A1").Select
    
        Sheets.Add

    
'   CREATE A PIVOT TABLE FROM THE DISCOUNT INVOICES


    ActiveSheet.Name = "Discount Summary"
    
    Sheets("Discount list - all open items").Select
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A1").Select
    Sheets("Summary list - all open items b").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Discount list - all open items").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    
    Sheets("Discount list - all open items").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 0).Select
    lRow = ActiveCell.Row

    
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Discount list - all open items!R1C1:R" & lRow & "C11", Version:= _
        xlPivotTableVersion10).CreatePivotTable TableDestination:="Discount Summary!R1C1", _
        TableName:="PivotTable2", DefaultVersion:=xlPivotTableVersion10
        
   
    Sheets("Discount Summary").Select
    Cells(1, 1).Select
    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Net due dt")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
        "PivotTable1").PivotFields("Amount in local cur."), _
        "Sum of Amount in local cur.", xlSum
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Status")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveWorkbook.ShowPivotTableFieldList = False
    Columns("B:D").Select
    Selection.Style = "Comma"
    Range("E3").Select
    


End Sub

Answer : 2 Pivot Tables in VBA

On line 74 change the TableDestination argument to:

TableDestination:="'Discount Summary'!R1C1"


Random Solutions  
 
programming4us programming4us