Bonjour,
Vu que ton sujet n'a pas trop de succès, on va essayer de s'occuper de ton cas.
Est-ce que tu veux faire ?
1 2 3 4 5 6 7 8 9 10 11
| Sheets("D_V_B").Activate
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"N° compte")
For i = 1 To .PivotItems.Count
If UCase(.PivotItems(i).Name) <> UCase("61300 -L") Then
'.PivotItems(i).Visible = False
Worksheets(.PivotItems(i).Name).Visible = False
End If
Next i
End With |
Tu testes pour moi et on avisera par la suite.
Bonne chance !
EDIT : je ne sais pas ce que tu voulais faire, mais je pense que c'est ça à la base. Pour ton TCD et une colonne "N° compte", tu check tous les champs de ligne et tu vérifies que leur nom est bien égal à "61300 -L". Si ce n'est pas le cas, on vire du TCD ce champ de ligne (pas visible) ET la feuille portant ce nom devient invisible, elle aussi. Est-ce cela ?
Sinon, pour en revenir à ce que tu avais fait, il y a, à mon avis, un problème de "déclaration". Tu déclares a comme une WorkSheet mais tu l'utilises dans ta boucle comme un PivotItem. Il faut le déclarer comme ce que c'est à la base. Pour parler du nom de la feuille, tu peux ensuite partir sur quelque chose comme
Worksheets(.PivotItems(a).Name)
D'ailleurs, et pour finir, dans ta boucle, il doit être assimilé à un PivotItem et non un PivotField.
Ca donnerait donc cela dans ton cas :
1 2 3 4 5 6 7 8 9 10 11 12 13
| Sheets("D_V_B").Activate
Dim a As PivotItem
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"N° compte")
For Each a In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"N° compte").PivotItems
If a.Name <> "61300 -L" Then
Worksheets(.PivotItems(a).Name).Visible = False
End If
Next a
End With |
Partager