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
|
Sub Test_TCDCalc()
Dim PivTab As PivotTable
Dim PivCalcFld As PivotField, PivCalcFldN As String
Dim PivCalConst As Single
'Init
Set PivTab = ThisWorkbook.Worksheets("PV_SUM").PivotTables("Tableau croisé dynamique2")
PivCalcFldN = "VincCalc"
PivCalConst = ThisWorkbook.Worksheets(1).Range("J2").Value
Set PivCalcFld = PivTab.PivotFields(PivCalcFldN)
'On teste si le champ existe déjà ou non
On Error Resume Next
If IsObject(PivTab.PivotFields(PivCalcFldN)) Then
Debug.Print PivTab.PivotFields(PivCalcFldN).Name
PivTab.PivotFields(PivCalcFldN).StandardFormula = "=Nombre*" & PivCalConst
Else: 'Le champ n'existe pas
PivTab.CalculatedFields.Add PivCalcFldN, "=Nombre*" & PivCalConst, True
PivTab.AddDataField PivTab.PivotFields(PivCalcFldN), PivCalcFldN, xlSum
End If
For Each PivCalcFld In PivTab.CalculatedFields
Debug.Print PivCalcFld.Name, IsObject(PivCalcFld), PivCalcFld.StandardFormula
Next PivCalcFld
End Sub |