Condition sur les Pivot Items cochés d'un TCD

ahmed73

XLDnaute Nouveau
Bonjour,
je souhaiterai identifier les Pivot Item coché uniquement, afin de faire une boucle sur cette condition,..

Voici mon code actuel:

Dim pvtField As PivotFields
Dim pvtItem As PivotItem
Dim pvtItems As PivotItems

For Each pvtItem In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("dpt").PivotItems


If pvtItem.Visible = True Then

MsgBox pvtItem.Name

End If

Next


Le probleme avec ce code, c'est qu'il m'affiche uniquement le pvtItem afficher dans le TCD et pas tous les pvtItem cochés.

Comment boucler sur tous les pvtItem cochés svp ? j'ai l'impression que la propriété visible renvoie vrai pour se qui est affiché dans le TCD uniquement et non pas pour les autres pvtItem cochés.

Merci pour votre aide, pcke ca fait une semaine que je me casse la tete dessus et je n'ai rien trouvé sur le net,...
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Condition sur les Pivot Items cochés d'un TCD

Re,

le pvtItem afficher dans le TCD et pas tous les pvtItem cochés.
comprends pas trop... en l'état tu boucles sur tous les "pivoitem" du tcd, cochés ou pas.... peut être un peu plus d'explication, en autre le résultat à atteindre... généralement si coché, et pas d'items = anomalie ou base modifiée....

bon après midi
@+
 

ahmed73

XLDnaute Nouveau
Re : Condition sur les Pivot Items cochés d'un TCD

Merci de te pencher sur mon cas Pierrot.

Voici un fichier avec un exemple. Ca sera plus simple à comprendre tu as raison.
j'aimerai que la MSGBOX affiche les departementS (coché uniquement donc pas le 501) un par un. Et non pas uniquement le dpt selectionné dans le TCD.

MERCI POUR TON AIDE
 

Pièces jointes

  • Suivi_Eff-TEST.xls
    30.5 KB · Affichages: 53

Pierrot93

XLDnaute Barbatruc
Re : Condition sur les Pivot Items cochés d'un TCD

Re,

un truc à l'arrache... on doit pouvoir faire mieux, mais pas trouvé...
Code:
Option Explicit
Sub test()
Dim pf As PivotField, c As String, i As Byte
Set pf = ActiveSheet.PivotTables(1).PageFields("Dpt")
With pf
    c = .CurrentPage
    For i = 1 To .PivotItems.Count
        On Error Resume Next
        .CurrentPage = .PivotItems(i).Name
        If Err.Number = 0 Then MsgBox .PivotItems(i).Name
    Next i
    On Error GoTo 0
    .CurrentPage = c
End With
End Sub

bonne soirée
@+
 

ahmed73

XLDnaute Nouveau
Re : Condition sur les Pivot Items cochés d'un TCD

Merci Pierrot c'est super sympas !!!

Sais-tu si on, peut proteger un TCD avec un code, pour ne laisser à l'utilisateur que les pivot items qu'on lui a attribué,...

Dans mon exemple, il n'aurait pas le droit d'afficher le dpt 501 qui est masqué.

Merci encore !!!
 

Pierrot93

XLDnaute Barbatruc
Re : Condition sur les Pivot Items cochés d'un TCD

Bonjour,

sans doute possible, peut être une solution via la procédure événementielle de la feuille de calcul :
Code:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
risque d'être un peu délicat à coder...


bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 098
Membres
104 030
dernier inscrit
Angy