Masquer la liste des champs - Graphique Croisé Dynamique

Bonjour à tous,

Je suis nouveau sur le forum, j'ai un souci sur Excel et j'ai essayé de trouver une solution sur "Excel-VBA" mais en vain...

Du coup je vous sollicite :

J'aimerais pouvoir masquer la liste des champs d'un graphique croisé dynamique via une macro afin que les utilisateurs ne puissent pas les faire apparaître via le bouton "liste des champs" de l'onglet analyse.

En fouillant sur internet, j'ai trouvé celle-ci pour le TCD :

Sub RestrictPivotTable()

Dim pf As PivotField

On Error Resume Next

With ActiveSheet.PivotTables("TCD_STATS_ACHAT")

.EnableDrilldown = False

.EnableFieldList = False

.EnableFieldDialog = False

.PivotCache.EnableRefresh = True

For Each pf In .PivotFields

With pf

.DragToPage = False

.DragToRow = False

.DragToColumn = False

.DragToData = False

.DragToHide = False

End With

Next pf

End With

End Sub

Mais pas moyen de trouver une macro similaire pour un graphique.

Sauriez-vous m'aider ?

Par avance merci.

Clovis

Bonjour,

Costcontrol a écrit :

Bonjour à tous,

Je suis nouveau sur le forum....

Oui, on le sait, sinon tu aurais lu la charte :

Choisissez un titre suffisamment explicite pour votre nouveau sujet (évitez les titres trop vagues tels que "besoin d'aide c'est URGENT" ou encore "problème Excel"). Les titres en majuscules sont à éviter.

Et tu aurais su que (toujours tiré de la charte) :

Pensez à joindre un fichier pour faciliter la compréhension du problème et augmenter les chances de vous faire aider (taille limite : 300ko, n'hésitez pas à compresser vos fichiers).

Ceci dit :

Bon courage

Bonjour,

Qui dit nouveau ne dit pas forcément, ne pas avoir lu la charte...

Certes, je ne me suis pas souvenu de toutes les remarques ligne par ligne mais l'essentiel y était.

Dans tous les cas je tenterai de faire mieux à l'avenir, et je te remercie de ton indulgence !

Merci.

Clovis

Re-,

Il est inutile de prendre la mouche...

Tu as besoin d'aide, on peut peut-être t'aider.

Maintenant, il y a des règles à accepter, c'est pas la mer à boire, et on s'y fait très vite.

Au lieu de cette réponse, tu aurais du joindre un fichier exemple, et on aurait pu voir si c'était dans nos cordes (je dis "nos", car nous sommes nombreux à répondre sur ce forum)

Bon courage

Bonjour,

Un début de réponse à tester.

Cdlt.

Option Explicit
Dim ws As Worksheet
Dim objChart As ChartObject
Public Sub ProtectChart()
    Set ws = ActiveSheet
    Set objChart = ws.ChartObjects(1)
    With objChart.Chart
        .ShowAllFieldButtons = False
        .ProtectSelection = True
    End With
    Set objChart = Nothing: Set ws = Nothing
End Sub

Public Sub UnprotectChart()
    Set ws = ActiveSheet
    Set objChart = ws.ChartObjects(1)
    With objChart.Chart
        .ShowAllFieldButtons = True
        .ProtectSelection = False
    End With
    Set objChart = Nothing: Set ws = Nothing
End Sub

Bonjour Jean-Eric,

Avant toute chose, merci pour ta réponse.

J'ai essayé ta commande mais je ne suis pas parvenu à obtenir ce que je voulais.

Cependant j'ai réussi à trouver une "solution" à mon problème, en effet en créant le graphique je crée le graphique + le tableau croisé dynamique ce qui me permet de faire marcher ma macro sur mon TCD et aussi sur mon graphique croisé dynamique. Pourquoi ? je ne sais pas.

Je te laisse un fichier à titre d'exemple, si tu trouves une macro qui concerne QUE le graphique je suis preneur, au moins je n'ai pas à créer le TCD qui va avec, si pas je continuerai comme ça.

Merci à toi.

Clovis

62test.xlsm (25.90 Ko)
Rechercher des sujets similaires à "masquer liste champs graphique croise dynamique"