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
.