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
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
A voir également:
- Actualiser tcd google sheet
- Google maps satellite - Guide
- Dns google - Guide
- Google earth - Télécharger - 3D
- Google - Guide
- Créer un compte google - Guide
4 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 418
20 févr. 2014 à 14:31
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
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
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
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
Merci beaucoup
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
20 févr. 2014 à 17:10
voci mon tcd :
https://www.cjoint.com/?DBurjt7286B
https://www.cjoint.com/?DBurjt7286B
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 418
20 févr. 2014 à 17:22
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
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
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
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
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
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 418
Modifié par Vaucluse le 20/02/2014 à 17:42
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
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
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
20 févr. 2014 à 18:43
Merci beaucoup je vais tester demain et je vous met au courant.
Merci beaucoup pour votre aide
Merci beaucoup pour votre aide
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
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
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
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 418
21 févr. 2014 à 12:54
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
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