Bonjour,
J'utilise la fonction GetPivotData pour extraire des valeurs de TCDs. Cela fonctionne bien sur windows, mais j'ai l'erreur suivante sur mac :
"The specified dimension is not valid for the current chart type."
Des idées sur l'origine du problème ?
Sub GetPivotData_Annual()
Dim pt As PivotTable
Dim wsPT As Worksheet
Dim wsFig As Worksheet
Dim get_result, get_result_two, total_result, sum_result As Range
Dim ref_item, ref_month, ref_year As String
Dim r As Integer
Set wsPT = Worksheets("Calculation")
Set wsFig = Worksheets("Figures")
wsFig.Range("C26:O28").Value = ""
wsFig.Range("C56:O58").Value = ""
wsFig.Range("C84:O86").Value = ""
wsFig.Range("C143:O146").Value = ""
wsFig.Range("C172:O176").Value = ""
wsFig.Range("C204:O207").Value = ""
wsFig.Range("C233:O237").Value = ""
wsFig.Range("C270:O273").Value = ""
wsFig.Range("C310:O315").Value = ""
wsFig.Range("C344:O346").Value = ""
wsFig.Range("C408:O410").Value = ""
ref_year = wsFig.Cells(4, 19) 'Indirect input in the Figures Sheet.
Set pt = Worksheets("Calculation").PivotTables("TCD_1")
Set Field = pt.PivotFields("YEAR")
With wsPT
With pt
Field.CurrentPage = ref_year
End With
End With
Set total_result = wsFig.Range("O26")
r = 3
For field_row = 1 To r
ref_item = Choose(field_row, "", "AES", "Other") 'If r = 1, choice = "". It does not matter as ref_item is not used in the IF loop whenevr r = 1.
For i_month = 1 To 12
ref_month = Choose(i_month, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
Set get_result = wsFig.Range("B26").Offset(field_row - 1, i_month) 'Start at the row to be filled, so "-1" to cancel offset when r = 1.
If field_row = 1 Then
'On Error Resume Next
get_result.Value = pt.GetPivotData("Count of Request ID", "MONTH", ref_month).Value
ElseIf field_row > 1 Then
On Error Resume Next
get_result.Value = pt.GetPivotData("Count of Request ID", "AIRLINE", ref_item, "MONTH", ref_month).Value
End If
If IsEmpty(get_result) Then
get_result.Value = 0
End If
Next i_month
Next field_row
total_result.Value = Application.WorksheetFunction.Sum(Range("C26:N26").Value)
total_result.Offset(1, 0).Value = Application.WorksheetFunction.Sum(Range("C27:N27").Value)
total_result.Offset(2, 0).Value = Application.WorksheetFunction.Sum(Range("C28:N28").Value)
Merci d'avance de votre aide.