Ajout de champ sur le tableau pivot à l'aide de VBA

ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _ "PivotTable5").PivotFields(range("hidy!B" & pos).Value), "Sum of " & range("hidy!B" & pos).Value, xlSum 

Bonjour, je supporte les champs du tableau pivot selon le contrôle déroulant des users. Mais dans le code ci-dessus, je reçois un message d'erreur "incapable d'get la propriété pivot de la class pivotable". Je suis très nouveau pour VBA excel, aidez-moi à comprendre

Modifiez votre code à ceci:

 ActiveSheet.PivotTables("PivotTable5").AddDataField ActiveSheet.PivotTables( _ "PivotTable5").PivotFields(Sheets("hidy").Range("B" & pos).Value), _ "Sum of " & Sheets("hidy").Range("B" & pos).Value, xlSum 

Le problème est que vous faites reference à la valeur de la cellule Bpos partir de la Sheet hidy manière incorrecte.
Pour améliorer encore votre code, essayez de passer les feuilles à une variable comme ceci:

 Dim ws1 As WorkSheet, ws2 As Worksheet Set ws1 = Thisworkbook.Sheets("Sheetwithpivot") 'change to your actual sheet Set ws2 = Thisworkbook.Sheets("hidy") 'sheet with dropdown ws1.PivotTables("PivotTable5").AddDataField ws1.PivotTables( _ "PivotTable5").PivotFields(ws2.Range("B" & pos).Value), _ "Sum of " & ws2.Range("B" & pos).Value, xlSum 

De cette façon, vous éviterez les Runtime errors .