Actualiser un TCD protégé

Résolu/Fermé
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014 - 20 févr. 2014 à 12:44
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014 - 21 févr. 2014 à 12:56
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.
A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 févr. 2014 à 14:31
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
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
20 févr. 2014 à 17:02
Merci beaucoup pour votre réponse je vais tester immédiatement et je vous met au courant.

Merci beaucoup
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
20 févr. 2014 à 17:10
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 févr. 2014 à 17:22
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
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
20 févr. 2014 à 17:31
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 20/02/2014 à 17:42
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
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
20 févr. 2014 à 18:43
Merci beaucoup je vais tester demain et je vous met au courant.

Merci beaucoup pour votre aide
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
21 févr. 2014 à 12:50
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
21 févr. 2014 à 12:54
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