rkol297
Board Regular
- Joined
- Nov 12, 2010
- Messages
- 131
- Office Version
- 365
- 2019
- Platform
- Windows
I have a macro that builds a Pivot Table however when it gets to the lines of code:
I'm experiencing an error with this section of the code:
If SATURDAY SHIP isnt on the report it will error out but sometimes the value is on the report and it works fine. The report that this is run on changes all the time and wont necessarily have each of the values in " ". Actually at any given day any of SATURDAY, SUNDAY, PREVIOUS SHIP, NEXT DAY, FUTURE SHIP may not be present but I still need the code to execute. Is there a way to make the code continue to run if it can't execute a line of code say...
OR
Code:
Sub BuildPivotsAOBstatsonly()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.DisplayAlerts = False
.EnableEvents = False
End With
'###PIVOT TABLE BUILDS###
Sheets("STATS-DATA").Select
Range("A1").Select
Dim objTable As PivotTable, objField As PivotField
ActiveWorkbook.Sheets("STATS-DATA").Select
Range("A1").Select
Set objTable = Sheets("STATS-DATA").PivotTableWizard
Set objField = objTable.PivotFields("TRC")
Set objField2 = objTable.PivotFields("MEDCO MAIL OR AOB")
objField.Orientation = xlColumnField
objField2.Orientation = xlColumnField
Set objField = objTable.PivotFields("DAY")
objField.Orientation = xlRowField
objField.PivotItems( _
"FUTURE SHIP").Position = 1
objField.PivotItems( _
"NEXT DAY").Position = 1
objField.PivotItems( _
"SAME DAY").Position = 1
objField.PivotItems( _
"PREVIOUS SHIP").Position = 1
objField.PivotItems( _
"SUNDAY SHIP").Position = 1
objField.PivotItems( _
"SATURDAY SHIP").Position = 1
Set objField = objTable.PivotFields("GROUPER")
Dim varItemList() As Variant
Dim strItem1 As String
Dim i As Long
Application.ScreenUpdating = False
varItemList = Array("REVA SUSP", "PAH INH", "PAH ORALS", "PAH INJ", "ZYMES", "HAE", "ALPHA-IG", "ACTI")
strItem1 = varItemList(LBound(varItemList))
With objTable.PivotFields("GROUPER")
.PivotItems(strItem1).Visible = True
For i = 1 To .PivotItems.Count
If .PivotItems(i) <> strItem1 And _
.PivotItems(i).Visible = True Then
.PivotItems(i).Visible = False
End If
Next i
For i = LBound(varItemList) + 1 To UBound(varItemList)
.PivotItems(varItemList(i)).Visible = True
Next i
End With
objField.Orientation = xlRowField
objField.PivotItems( _
"ACTI").Position = 1
objField.PivotItems( _
"PAH ORALS").Position = 1
objField.PivotItems( _
"PAH INH").Position = 1
objField.PivotItems( _
"PAH INJ").Position = 1
objField.PivotItems( _
"ALPHA-IG").Position = 1
objField.PivotItems( _
"HAE").Position = 1
objField.PivotItems( _
"ZYMES").Position = 1
objField.PivotItems( _
"REVA SUSP").Position = 1
Set objField = objTable.PivotFields("THERAPY TYPE")
objField.Orientation = xlRowField
Set objField = objTable.PivotFields("RX HOME ID #")
objField.Orientation = xlDataField
objField.Function = xlCount
objTable.RowAxisLayout xlOutlineRow
objTable.TableStyle2 = "PivotStyleMedium9"
Sheets("Sheet12").Select
Sheets("Sheet12").Name = "STATS"
ActiveWorkbook.ShowPivotTableFieldList = False
objTable.ShowTableStyleRowStripes = True
objTable.ShowTableStyleColumnStripes = True
objTable.MergeLabels = False
objTable.PivotFields("GROUPER").ShowDetail = False
With Application
.ScreenUpdating = True
.Calculation = xlCalculationManual
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
I'm experiencing an error with this section of the code:
Code:
objField.PivotItems( _
"FUTURE SHIP").Position = 1
objField.PivotItems( _
"NEXT DAY").Position = 1
objField.PivotItems( _
"SAME DAY").Position = 1
objField.PivotItems( _
"PREVIOUS SHIP").Position = 1
objField.PivotItems( _
"SUNDAY SHIP").Position = 1
objField.PivotItems( _
"SATURDAY SHIP").Position = 1
If SATURDAY SHIP isnt on the report it will error out but sometimes the value is on the report and it works fine. The report that this is run on changes all the time and wont necessarily have each of the values in " ". Actually at any given day any of SATURDAY, SUNDAY, PREVIOUS SHIP, NEXT DAY, FUTURE SHIP may not be present but I still need the code to execute. Is there a way to make the code continue to run if it can't execute a line of code say...
Code:
objField.PivotItems( _
"SATURDAY SHIP").Position = 1
OR
Code:
objField.PivotItems( _
"SUNDAY SHIP").Position = 1