Propriétés Visible et Name de PivotItem
Bonjour,
J'ai déjà fait beaucoup de recherches sur d'autres discussions et d'autres forums pour mon problème, mais je n'arrive pas à le résoudre. J'ai fait aussi beaucoup d'essais sur mon code, mais sans succès...
Contexte : J'ai une plage de donnée avec les noms des PivotItems que je veux sélectionner sur mon TCD (c'est tout simplement un une liste de mots sur les cellules A100 à A109). Je veux créer un code qui rend visibles les PivotItems dont le nom est dans cette liste et non visibles pour les autres. Voici le code que j'ai fait :
Code:
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 36
|
Sub data_setting(sheet, pivot_table)
Sheets(sheet).Activate
losses_types = Range("A5:A14").Value
Range("A100:A109") = losses_types
' ----- pas important pour la question
ActiveSheet.PivotTables(pivot_table).PivotFields("Level 2/3").ClearAllFilters
ActiveSheet.PivotTables(pivot_table).PivotFields("Month").ClearAllFilters
ActiveSheet.PivotTables(pivot_table).PivotFields("Month").CurrentPage = "(All)"
With ActiveSheet.PivotTables(pivot_table).PivotFields( _
"Somme de Durée décimale")
.Caption = "Moyenne de Durée décimale"
.Function = xlAverage
End With
'-----
Dim loss_type As PivotItem
For Each loss_type In ActiveSheet.PivotTables(pivot_table).PivotFields("Durée décimale").PivotItems()
Select Case loss_type.name
Case Range("A100"), Range("A101"), Range("A102"), Range("A103"), Range("A104"), Range("A105"), Range("A106"), Range("A107"), Range("A108"), Range("A109")
ActiveSheet.PivotTables(pivot_table).PivotFields("Level 2/3").PivotItems(loss_type.name).Visible = True
Case Else
ActiveSheet.PivotTables(pivot_table).PivotFields("Level 2/3").PivotItems(loss_type.name).Visible = False
End Select
Next loss_type
End Sub |
Problème : le code me renvoie sans cesse l'erreur "Impossible de définir la propriété Visible de la classe PivotItem"
J'ai fait un essai avec le même type de syntaxe :
Code:
1 2 3 4
|
Dim nom As String
nom = "un nom de ma liste"
ActiveSheet.PivotTables(pivot_table).PivotFields("Level 2/3").PivotItems(nom).Visible = False |
Et là, ça marche ... Je me suis donc demandée si mon problème venait du faite qu'Excel ne comprend pas que loss_type.name est un String ? Il n'y a jamais les " ".
Au tout début j'avais essayé la syntaxe suivante :
Code:
1 2
|
loss_type.Visible = False |
Mais là, il ne se passait absolument rien : pas d'erreur, mais pas d'action non plus ...
Auriez-vous des idees, des pistes ... des solutions ? Cela fait longtemps que je pêche sur ce problème et je ne peux pas avancer sur mon code, si ça bloque ici ...
Merci beaucoup !