Actualiser un TCD protégé

Résolu
Bonjour,

Je voudrais savoir s'il y a une possibilité d'actualiser un tableau croisé dynamique même s'il la feuille et le classeur sont protégés.

Merci pour vos réponse.

4 réponses

  1. Contributeur
    Bonjour
    je ne crois pas, non, sauf à passer par VBA

    par exemple:
    dans le code de la feuille: clic droit sur onglet et coller

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
    ActiveSheet.Unprotect "xxxx"
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
    ActiveSheet.Protect "xxxx"
    End If
    End Sub

    le tableau va se réactualiser tout seul quand vous modifier une valeur dans la colonne B_(column=2) et à condition bien sur que les cellules en B ne soient pas verrouillées

    Tableau croisé dynamique 1 est le nom du TCD
    xxxx est le mot de passe à placer selon ce que vous décidez si'il est besoin.
    ou alors dans un module VBA

    Sub ACTUALISE()
    ActiveSheet.Unprotect "xxxx"
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
    ActiveSheet.Protect "xxxx"
    End Sub

    et affectez un bouton ou une touche clavier à la macro pour la lancer

    crdlmnt
    0
    1. Merci beaucoup pour votre réponse je vais tester immédiatement et je vous met au courant.

      Merci beaucoup
      0
      1. Contributeur
        Re

        voila le fichier avec la macro, mais je ne peux pas tester car je n'ai pas de lien avec le fichier des données d'origine et la macro plante!
        et aussi ce fichier est un Xlsm (soit fichier 2007 avec macro)
        mais il faut aussi que dans vos options Excel, vous acceptiez les macros.
        https://www.cjoint.com/?DBursBqGM7n
        Bien entendu, seul la version avec bouton peut fonctionner puisque les données ne sont pas dans le fichier ;
        Voir le bouton Actualiser qui ôte la protection, actualise et remet la protection sans mot de passe.
        ... ou au moins qui devrait, mais je n'ai jamais testé de fichier à fichier

        Crdlmnt
        0
        1. Merci.
          J'ai testé sa donne erreur d'execution 1004.
          qd je débogue l'erreur se trouve ds la ligne :
          ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

          Merci
          0
        2. Contributeur
          Parce que je pense qu'il faut que le classeur source soit ouvert ou alors vous avez placé le tcd dans un fichier modèle "bidon" pour le communiquer.

          faites ceci:
          Ruban/ Onglet développeur / a gauche "enregistrer une macro"
          oter la protection
          sélectionner le TCD et actualisez
          remettez la protectioon
          revenez au ruban et "arrêter l'enregistrement"

          ensuite / clic droit sur le bouton actualiser dans la feuille et "affecter une macro" / Sélectionnez la bonne macro dans la liste et effacer l'autre

          bonne chance
          0
        3. Merci beaucoup je vais tester demain et je vous met au courant.

          Merci beaucoup pour votre aide
          0
        4. Bonjour,

          voici la macro que j'ai mis :

          Sub Macro1()
          '
          ' Macro1 Macro
          '

          '
          ActiveWorkbook.Unprotect
          ActiveSheet.Unprotect

          ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
          ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
          True, AllowUsingPivotTables:=True
          ActiveWorkbook.Protect Structure:=True, Windows:=False
          End Sub

          est ce qu'il y a une possibilité avant de reprotéger de mettre un delai par ex 10 seconde avant la reprotection.

          Merci
          0
        5. Contributeur
          Bonjour

          peut être mais moi je ne connais pas!
          vous aurez peut être plus de chance avec d'autres meilleurs que moi en VBA (vu que je suis nul)

          Bonne chance
          crdlmnt
          0