Bloquer un seul filtre d'un TCD

Bonjour à tous,

J'ai cherché sur le sujet mais n'ai rien trouvé. J'espère que vous pourrez m'aider.

J'ai un tableau croisé dynamique ("tcd") sur la Feuil1. Ce tableau croisé dynamique a 4 filtres dont un qui est le pays. Je souhaite un code où le pays choisi est implémenté dans le code et ensuite la cellule est bloquée sauf si la personne change le code. Bien sûr l'accès au code vba de la feuille sera lui aussi bloqué avec un mot de passe.

A part ça, les filtres autres que le pays sont accessibles, les champs du tcd sont accessibles etc... les gens peuvent faire ce qu'ils veulent sauf accéder aux chiffres des pays qui n'est pas celui choisi dans le code vba.

Je ne sais pas si je suis claire. N'hésitez bien évidemment pas à me poser des questions.

Je vous remercie tous par avance bien sûr

Bonjour,

Merci de joindre un petit fichier que l'on voit la structure de ton TCD.

Cdlt.

Par exemple celui-là (c'est un exemple): je veux qu'on ne puisse plus changer le filtre "Pays" mais qu'on puisse rajouter des éléments calculés ou rajouter un filtre, changer els colonnes, en supprimer etc...

120classeur1.xlsx (12.88 Ko)

Bonjour,

Un exemple...

122klaradoc.xlsm (18.66 Ko)
Option Explicit

Public Sub EnableSelection()
Dim pt As PivotTable, pf As PivotField

    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PageFields("Pays")
    pf.ClearAllFilters
    pf.EnableItemSelection = True

    Set pf = Nothing: Set pt = Nothing

End Sub

Public Sub DisableSelection()
Dim pt As PivotTable, pf As PivotField, sPI As String

    sPI = "Allemagne"
    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PageFields("Pays")

    On Error GoTo err_Handler
    pf.CurrentPage = sPI
    pf.EnableItemSelection = False

exit_Handler:
    Set pf = Nothing: Set pt = Nothing
    Exit Sub
err_Handler:
    MsgBox "Le champ " & sPI & " est inconnu.", vbInformation
    Resume exit_Handler

End Sub

Cdlt.

Salut Jean-Eric!

Alors tout d'abord merci pour le mal que tu te donnes c'est vraiment super sympa!

Dans le code que tu m'as donné j'aime bien le fait que les autres pays soient avec x dans le déroulé. Par contre l'utilisateur peut toujours voir les chiffres de x. Moi je veux qu'il ne puisse pas cocher que x... je ne sais pas si c'est faisable...

merci

Bonjour,

Je te renvoie le fichier sans les x (erreur ).

Peux-tu préciser ta demande ?

Cdlt.

501klaradoc.xlsm (19.43 Ko)

Comme ça c'est absolument parfait ! C'est exactement ce que je voulais!

Merci beaucoup!

Bonjour, désolé d'ouvrir à nouveau le sujet.

Je suis tombé dessus car j'avais un beosin équivalent au vôtre. néanmoins je souhaiterai pouvoir mettre le filtre sur plusieurs données mais je ne trouve pas la bonne syntaxe ou la boucle pour... Je ne possède pas de connaissances encore assez développées en VBA pour.

Cela concerne cette ligne :

sPI = "DTSE"

J'aimerai y ajouter un/plusieurs autres critères mais rien ne fonctionne ! ("DTSE", "XXX") ou Array("DTSE", "XXX") ou And

Je pense qu"il faut auter chose..

Avez vous une idée ?

Rechercher des sujets similaires à "bloquer seul filtre tcd"