OVH Cloud OVH Cloud

TDC probleme propriete visible de la classe PivoItem

6 réponses
Avatar
Pegaze
Bonjour,
j'ai cree un TDC et je voudrais que certains champs soient filtres(visible).
j'ai cree ce code en VBA mais quand je l'execute j'ai une erreur imposible
de definir
la propriete visible de la classe PivotItem

Pourquoi???

le code est le suivant :
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("TCD1").PivotFields("PHASE")
.PivotItems("BE35").Visible = True
End With

Merci par avance de votre aide.

6 réponses

Avatar
michdenis
Bonjour Pegaze,

Tu as un exemple ici :

http://www.contextures.com/excelfiles.html#Pivot

à moins que tu ne veuilles publier ton TDC et ses données sources ici : http://cjoint.com/


Salutations!



"Pegaze" a écrit dans le message de news:
Bonjour,
j'ai cree un TDC et je voudrais que certains champs soient filtres(visible).
j'ai cree ce code en VBA mais quand je l'execute j'ai une erreur imposible
de definir
la propriete visible de la classe PivotItem

Pourquoi???

le code est le suivant :
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("TCD1").PivotFields("PHASE")
.PivotItems("BE35").Visible = True
End With

Merci par avance de votre aide.
Avatar
Pegaze
merci pour le coup de main.
maintenant j'ai un autre probleme, je vaudrais initialiser tous mes champs a
visible = false sauf le champ "vide".

je fais une boucle du compteur-1 mais sa fonctionne pas

Private Sub BT_ok_Click()

Dim i As Integer
Dim pt As PivotTable
Dim pf As PivotField

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Sheets("synthese socabu").Select

Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.PivotFields("PHASE")
'tous les champs doivent etre a faux sauf vide


On Error Resume Next

With pt
i = 1
For i = 1 To .PivotFields.Count - 1
.PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)
Next i
End With

With pf
.PivotItems(CB_phase.Value).Visible = True
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Me.Hide
Avatar
Pegaze
c'est bon j'ai trouve une solution
dans un module a part j'ai ecris une procedure qui met tous les champs a
visibleúlse
et j'appele ensuite la procedure
le probleme c'est long il y a 15 champs
Avatar
michdenis
Bonjour Pegaze,


For i = 1 To .PivotFields.Count - 1
.PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)
Next i

cette ligne de code : .PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)

aurait plus de chance de fonctionner si tu l'écrivais comme ceci :

.PivotItems(i).Visible = False

et n'oublie pas, tu dois avoir au moins un pivotitem de visible en tout temps.


Salutations!



"Pegaze" a écrit dans le message de news:
c'est bon j'ai trouve une solution
dans un module a part j'ai ecris une procedure qui met tous les champs a
visibleúlse
et j'appele ensuite la procedure
le probleme c'est long il y a 15 champs
Avatar
Pegaze
j'ai essaie mais ca ne marche pas en indexant la PivotItem(i)
en + je plante regulierement



Bonjour Pegaze,


For i = 1 To .PivotFields.Count - 1
.PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)
Next i

cette ligne de code : .PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)

aurait plus de chance de fonctionner si tu l'écrivais comme ceci :

..PivotItems(i).Visible = False

et n'oublie pas, tu dois avoir au moins un pivotitem de visible en tout temps.


Salutations!



"Pegaze" a écrit dans le message de news:
c'est bon j'ai trouve une solution
dans un module a part j'ai ecris une procedure qui met tous les champs a
visibleúlse
et j'appele ensuite la procedure
le probleme c'est long il y a 15 champs






Avatar
michdenis
Si tu veux, tu peux toujours m'envoyer directement dans ma bal ton fichier + un peu d'explications sur ce que tu tentes de faire +
la version de ton application Excel.

Seulement le TCD et la feuille source des données ! Je regarderai ça plus tard aujourd'hui.


Salutations!



"Pegaze" a écrit dans le message de news:
j'ai essaie mais ca ne marche pas en indexant la PivotItem(i)
en + je plante regulierement



Bonjour Pegaze,


For i = 1 To .PivotFields.Count - 1
.PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)
Next i

cette ligne de code : .PivotItems.Visible = False ("c'est ici que ca marche pas!!!!)

aurait plus de chance de fonctionner si tu l'écrivais comme ceci :

..PivotItems(i).Visible = False

et n'oublie pas, tu dois avoir au moins un pivotitem de visible en tout temps.


Salutations!



"Pegaze" a écrit dans le message de news:
c'est bon j'ai trouve une solution
dans un module a part j'ai ecris une procedure qui met tous les champs a
visibleúlse
et j'appele ensuite la procedure
le probleme c'est long il y a 15 champs