![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2007
Messages: 73
|
Voilà, je suis en train de me créer une macro, afin de me permettre une sélection automatisée de certains critères dans mon TCD.
Par exemple, dans mon TCD j'ai un champ qui me permet de filtrer mes valeurs selon des Directeurs de comptes. Pour sélectionner leurs statistiques un à la suite de l'autre, il n'y a aucun problème. Par contre, lorsque je veux faire une somme des statistiques des directeurs de comptes sélectionnés précédemment, ceci devient pour moi beaucoup plus compliqué, étant donné que mon "data" change pratiquement à chaque mois (des directeurs de comptes quittent et des nouveaux arrivent). C'est pourquoi je ne peux pas faire ceci dans ma macro : Code :
Sub Macro1() ' Range("S14").Select With ActiveSheet.PivotTables("PivotTable7").PivotFields("Directeurs de comptes") .PivotItems("Amandine").Visible = False .PivotItems("Jacques").Visible = False .PivotItems("Audrey").Visible = False .PivotItems("Maxime").Visible = False .PivotItems("Francois").Visible = False .PivotItems("Charles").Visible = True End With End Sub Si j'ai été trop vague ou que je me suis mal exprimé faites moi le savoir, sinon, merci d'avance pour votre aide. |
|
|
|
|
|
#2 (permalink) |
|
Membre actif
![]() Date d'inscription: mars 2008
Localisation: Nantes
Âge: 26
Messages: 186
|
Bonjour,
C'est (à ma connaissance) pas possible de le faire, essaye de le faire manuellement et tu verras qu'excel ne veut pas que l'on décoche tous les champs Par contre tu peux lui demander d'en laissé 1 essaye avec ce bout de code Code :
nb = ActiveSheet.PivotTables("PivotTable7").PivotFields("Directeurs de comptes").PivotItems.Count For i = 1 To nb - 1 With ActiveSheet.PivotTables("PivotTable7").PivotFields("Directeurs de comptes") .PivotItems(i).Visible = False End With Next |
|
|
|
|
|
#3 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2007
Messages: 73
|
Wow de supra wow, ca fonctionne nickel. Ce sera idéal pour pallier au problème auquel je faisais face.
Donc c'est simple, je m'assure que mes TCD contiennent un pivotItem (blank) (filtré en ordre croissant bien entendu), ce qui revient en pratique à avoir décoché tous les pivotItems (puisqu'il ne reste que le pivotItem (blank)), pour ensuite activer les pivotItems que j'aurai sélectionné dans mes listes déroulantes. Rewow, merci encore David2304 (je suis facilement impressionnable quant aux boucles, puisque j'ai beaucoup de difficulté à comprendre les logiques derrière tout ça). Sur ce, bonne journée |
|
|
|
|
|
#4 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2007
Messages: 73
|
Bonjour, me voici aux prises avec un nouveau problème suite au code précédent.
Je ne comprends pas pourquoi, mais dans certaines situations, le code suivant m'envoie toujours ce même message d'erreur : Unable to set the Visible property of the PivotItem class Voici mon code : Code :
With ActiveSheet.PivotTables("PivotTable10").PivotFields("Codaccman2")
.PivotItems("ADALY").Visible = True
End With
Merci |
|
|
|
|
|
#5 (permalink) |
|
Invité régulier
![]() Date d'inscription: juillet 2007
Messages: 13
|
Peut être que l'items ADALY n'existe pas pour le champs Codaccman2 , à toi de vérifier dans le fichier .
Pour palier au problème , il suffit d'interroger d'abord sur l'existence de cet item : for each item_ in ActiveSheet.PivotTables("PivotTable10").PivotFields"Codaccman2") if item_.name = ("ADALY") then ActiveSheet.PivotTables("PivotTable10").PivotFields("Codaccman2") .PivotItems("ADALY").Visible = True next |
|
|
|
|
|
#6 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2007
Messages: 73
|
En fait, l'items ADALY existe bel et bien, puisque mon code a simplement été construit grâce à une macro des plus simples.
Je peux aussi expliquer la nuance. Si je change dans mon code le TRUE pour un FALSE, tout fonctionne à merveille, sinon il m'envoie pratiquement tout le temps le même message : Unable to set the Visible property of the PivotItem class. Ensuite, lorsque je place ce "field" (Codaccman2) comme critère de page (dans le haut du TBC), le TRUE fonctionne très bien. Sinon, s'il est mis comme critère de rangée dans mon TBC, il m'envoie le message d'erreur....Je ne sais pas quoi faire |
|
|
|
|
![]() |
![]() |
||
Mettre tous les PivotsItems Invisible automatiquement
|
||
| Outils de la discussion | |
|
|