Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Excel VBA PivotItems Problem

Hi there

I have workbook with the following details.
Sheets are called Data, Final, Report, People.
Data sheet has information imported from access to be used to create a pivot
table.
People sheet contains information on the people contained in the data sheet
(also imported from access).
Report sheet has a combo drop down box so that someone can select a name and
then the idea is they click on a button to generate pivot table and a table
is generated and filtered to show just that one persons data.

I have all the code written to create the pivot table and this works
correctly, but when i add in code to set all pivotitems.visible to equal
false for all but one entry i get an error message.

"Run-time error 1004 - Unable to get the PivotItems property of the
PivotField class."

If i list each individually and then try to set just one to visible = true
it wont complete the list, it just crashed out after the first few are done.

ie.
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Caroline
Knight").Visible = False

I have found an article 114822 that mentions a problem with using the
visible command, but this only relates to Excel version 5.

Here is my code, please note that some lines are commented out where i was
trying different things to get this working.

Sub CreatePivotTable()
Dim PTCache As PivotCache
Dim PT As PivotTable
' Dim Pi As PivotItem
Dim strField As String
Dim x As String
Dim names(200) As String
Application.ScreenUpdating = False
Application.DisplayAlerts = True
' select data
Sheets("Data").Select
Columns("A:H").Select
strField = Selection.Cells(1, 1).Text
' name the list range
Range(Selection, Selection.End(xlDown)).Name = "Items"
' create pivot table from named list
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, _
SourceData:="=Items").CreatePivotTable
TableDestination:=Sheets("Report").Range("E4"), _
TableName:="360"
Worksheets("Report").Activate
Set PT = ActiveSheet.PivotTables("360")
With PT
'Add fields
.AddFields RowFields:=Array("Fullname", "Persnum"), _
ColumnFields:="SurveyID"
' Add Data Field
.AddDataField .PivotFields("AnswerResult")
' Change to average
.PivotFields("Count of AnswerResult").Function = xlAverage
.PivotFields("Average of AnswerResult").NumberFormat = "0.0"
End With
Application.ScreenUpdating = True
' remove grand total for rows
ActiveSheet.PivotTables("360").RowGrand = False
' remove blank rows
With ActiveSheet.PivotTables("360").PivotFields("FullNa me")
.PivotItems("(blank)").Visible = False
End With
' remove blank columns
With ActiveSheet.PivotTables("360").PivotFields("Survey ID")
.PivotItems("(blank)").Visible = False
End With
' define value for x
Range("D2").Select
x = ActiveCell.Value
'select the Report sheet
Sheets("Report").Select
' read the names in Col B into the names array
For i = 1 To 200
names(i) = Cells(i, 2).Value
Next i
' Change data in pivot table to the person defined by value x and names array
For i = 2 To 201
kk = "" & names(i) & ""

ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems(kk).Visible
= False
Next i
' With ActiveSheet.PivotTables("360").PivotFields("FullNa me")
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Brenton
Clark").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Caroline
Knight").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Jenny
Abrahall").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Jon
Funiciello").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Maryann
Pratt").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("Sonia
Bressey").Visible = False
'
ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems("(blank)").Visible = False
' End With

ActiveSheet.PivotTables("360").PivotFields("FullNa me").PivotItems(x).Visible
= True
'For i = 2 To 201
'If names(i) < x Then
'kk = "" & names(i) & ""
'Worksheets("Report").PivotTables("360").PivotFiel ds("FullName").PivotItems(kk).Visible = False
'End If
'Next i
' correct column widths
Columns("G:O").Select
Selection.ColumnWidth = 13
' close field list box and floating toolbar
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
End Sub

Any assistance into why this wont work would be great, i am not sure if this
is a bug or a problem with my code.

Thanks

Caroline

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
PivotItems Bug?! WhytheQ Excel Programming 2 November 29th 06 04:31 PM
Always keep the same 4 PivotItems visible Martin[_21_] Excel Programming 2 April 27th 05 10:17 AM
Excel 2003 Hide PivotItems Lee Excel Worksheet Functions 1 January 21st 05 08:41 PM
Excel Pivot Tables, Page Fields, Visible PivotItems, Activation Ananda Sim Excel Programming 1 September 10th 04 01:57 AM
Add PivotItems to PivotTable / Enabling - Disabling PivotItems Ole[_3_] Excel Programming 1 July 8th 03 03:24 PM


All times are GMT +1. The time now is 09:48 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"