Bonjour à tous,
J'aimerais automatiser l'affichage et le masque des détails d'un champs dans un Tableau Croisé Dynamique.
Manuellement je passe par l'onglet données -> menu plan -> Afficher / Masquer mais j'aimerais mettre à disposition un bouton en haut de la feuille (plus rapide et plus simple pour les utilisateurs finaux).
J'ai donc écris dans une premier temps les deux codes suivants (utilisation de l'enregistreur de macro et nettoyage) :
Cela fonctionne très bien mais deux macro impliquent deux boutons. Or j'aimerais un seul bouton pour passer d'un état à l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub Masquer_Details() ThisWorkbook.Sheets("Mafeuille").PivotTables("MonTCD").PivotFields("MonChamps").ShowDetail = False End Sub Sub Afficher_Details() ThisWorkbook.Sheets("Mafeuille").PivotTables("MonTCD").PivotFields("MonChamps").ShowDetail = True End Sub
J'ai donc écris le code suivant :
Etonnamment j'ai le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub test() Dim oPvtTbl As PivotTable, oPvtFld As PivotField Set oPvtTbl = ThisWorkbook.Sheets("Mafeuille").PivotTables("MonTCD") Set oPvtFld = oPvtTbl.PivotFields("MonChamps") With oPvtFld .ShowDetail = Not .ShowDetail End With fin: Set oPvtTbl = Nothing Set oPvtFld = Nothing End Sub
sur la ligne .ShowDetail = Not .ShowDetailErreur d'exécution '1004':
Erreur définie pas l'application ou par l'objet
Je dois avouer ne pas comprendre cette erreur.
L'explorateur d'objets VBA m'indique ça :
La propriété ShowDetail n'a donc pas l'air d'être en écriture seule.Property ShowDetail As Boolean
Membre de Excel.PivotField
Pendant le Débogage, la fenêtre des variables locales indique : <Erreur définie par l'application ou par l'objet> pour ShowDetail de l'objet oPvtFld
Merci d'avance pour le temps que vous passerez à m'expliquer ce comportement et m'apporter une solution.
Partager