![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
bonjour,
je suis devant un dileme. Savez vous comment je pourrais protéger un ensemble de feuilles regroupant des tableaux dynamiques tout en pouvant actualiser ces feuilles. Pour être plus clair, afin d'éviter une faute via des utilisateurs, j'aimerais pouvoir protéger les cellules et les tableaux dynamiques tout en ayant une interface utilisateur. Cet interface permettrai l'actualisation des données dans les tableaux dynamiques. Le message d'erreur que j'ai actuellement est qu'il est impossible d'actualiser les données d'un tableau dynamique sur une feuille protégée. Si je ne suis point explicite sur ma formulation de ma requête, je pourrais la re définir. J'espere que vous pourrez me répondre a cela. Je vous remercie d'avance Steph |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: Maurecourt
Version Excel : Excel 2003 (PC)
Messages: 1 530
|
Bonjour le Forum, Stéphane,
Je ne sais pas quelle version d'Excel tu as mais à partir de la 2002 (2003 sûr !) tu peux proteger ta feuille et deproteger certaines parties pour permettre une modification partielle par un utilisateur donné. Peut être une piste à explorer. Proteger la feuille, sauf les slicers du TCD. Je n'ai pas essayé au boulot je n'ai que 2000 qui ne propose pas cette option. @+ Creepy
__________________
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
|
Bonjour,
Les TCD ne sont modifiables que par changement dans une base de données et ce, via une actualisation des données. Comme tu l'as constaté ils ne peuvent être actualisés quand la feuille est protégée. Les utilisateurs ne sauraient intervenir dans le TCD que via l'assistant ou l'ajout de champs calculés. Ecrire dans un TCD est impossible. D'où mes questions ci-après : 1. Est-ce que tu peux autoriser l'actualisation des données ou non ? Cela me paraitrait normal de l'autoriser pour avoir toujours un TCD à jour. Dans ce cas, il suffirait de mettre à jour dès que tu accèdes à l'onglet où se trouve le ou les TCD 2. Est-ce que ce n'est pas plutôt le changement du TCD que tu souhaites ne pas autoriser ? Dasn ce cas on peut faire en sorte que l'assistant soit indisponible A te lire ![]() |
|
|
|
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Merci à toi,
j'en ai oublié l'essentiel c'est vrai. J'ai Excel 2003, et pour répondre à ta question je ne vois pas d'options afin de protéger la feuille sans enlever l'option d'actualisation des données. Est il possible dans un second temps de créer un script d'ouverture. Je ne suis pas encore tres alaise avec cela. Mais une idée d'organigramme serait: quand ouverture feuille deprotéger feuille mise a jour tableau protéger feuille fin bon je ne connais pas les fonctions, si quelqu'un sait, n'hesitez pas ^^ merci encore et bonne journée |
|
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
re,
pour être plus explicite, mon projet est de la sorte: Une base sous excel référant un certain nombre de champ que l'utilisateur Lambda utilisera. Plusieurs feuilles relatant de cette base sous liées par des liens dynamiques et certain calcul y sont associé. Pour éviter que l'utilisateur Lambda détériore les feuilles associées a la base, je pensais mettre des protections sur les feuilles. Mais d'apres ce que j'ai pu constaté une protection sur une feuille et une actualisation des données sur TCD sont interdites ou du moins je n'en connais pas l'astuce. Mon but étant bien sur que l'utilisateur Lambda puisse introduire des données via la base pour ensuite actualiser les TCD uniquement sans pôuvoir supprimer un TCD ou une feuille voir meme les calculs associés sur la meme feuille. En ce qui concerne vos réponses, je ne vois pas ou je puis cocher l'autorisation d'actualiser les données dans la protection de feuille. ce qui me parait étrange tout de meme. Si vous savez comment je puis contourner le problème, cela me serait tres tres utile merci d'avance |
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
|
Re,
1.créer un script d'ouverture : cela pourrait être une solution notamment pour actualiser le TCD. Les onglets pourraient rester visibles et le fait de cliquer sur un onglet contenant le TCD, pourrait exécuter l'actualisation automatiquement. 2. Pour éviter que l'utilisateur Lambda détériore les feuilles Mettre une protection est une solution mais il faut savoir que cela te condamne à retenir les mots de passe et que l'on peut les faire sauter avec des programmes spécifiques. 3.cocher l'autorisation d'actualiser les données : Ne cherche pas de ce coté car il n'y a pas d'options permettant cela. Les seules possibilités sont par le clique droite dans le TCD, en affichant la barre d'outils du TCD ou via macro. Il me semble que la meilleure solution serait de créer un TCD par macro qui serait construit à ta demande. A chaque fois que tu déciderais de voir tes résultats il te suffirait d'exécuter la macro pour afficher le résultat du TCD. Dans l'absolu on pourrait également recréer une nouvelle feuille pour placer le TCD. Ce ci n'est qu'un proposition à analyser en fonction de ton appli et du nombre de TCD à afficher. Vois à ce sujet l'appli que j'avais réalisée en cliquant sur ce lien : 500posts A te lire ![]() |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: décembre 2005
Messages: 4
|
re bonjour et encore merci a toi Dan,
j'ai regardé tes réponses et j'en ai conclue cela : il serait surement tres judicieux d'élaborer des macros mais en soit il n'est point sur que dans un avenir proche, on ne me demande pas un autre style de tableau ou du moins d'autres résulats. Par contre, je serais plus sur l'élaboration d'un script d'ouverture. Pour cela, si cela ne te derange pas, pourrais tu me donner un semblant de script de ce genre ou tout simplement des sites internet ou je puis trouver les différentes fonctions ou logique de programmation de VBA. Pour le moment je n'ai jamais utilisé ce logiciel mais d'autres similaires. Il me manque simplement un peu une aide répertoriant tout cela. et surtout les fonctions. Je remercie d'avance pour tout cela et vous souhaites une bonne journée Stéphane |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
|
Re,
OK bien lu ton message. Je reviendrai dans la soirée te proposer quelque chose dans l'esprit du script d'ouverture avec réactualisation des données. ![]() |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
|
Bonsoir,
Voici une proposition. 1. Vas dans VBA par ALT + F11 2. CTRL + R pour accéder à VBA Project 3. Là double clique sur la feuille où se trouve le TCD 4. Place ces macros Code:
Private Sub Worksheet_Activate() 'Macro par DAN pour stefane3879 - http://www.excel-downloads.com/forum...ise-a-jour.htm Application.ScreenUpdating = False With activesheet .unprotect .PivotTables('TCD').EnableWizard = False End With Call ActualiseTCD Activesheet.protect Application.ScreenUpdating = True End Sub Code:
Private Sub Worksheet_Deactivate() 'Macro par DAN pour stefane3879 - http://www.excel-downloads.com/forum...ise-a-jour.htm Application.ScreenUpdating = False Activesheet.PivotTables('TCD').EnableWizard = True Application.ScreenUpdating = True End Sub 6. Le module créé te montre une fenetre vierge à droite 7. Place cette macro Code:
Sub ActualiseTCD() 'Macro par DAN pour stefane3879 - http://www.excel-downloads.com/forum...ise-a-jour.htm Dim PvtTable As PivotTable With Application .ScreenUpdating = False .CommandBars('PivotTable').Visible = False End With Set PvtTable = Worksheets('Tata').Range('X').PivotTable PvtTable.RefreshTable Application.ScreenUpdating = True End Sub TATA = le nom du TCD. A obtenir par clique droite dans le TCD, puis cliquer sur Option – le nom est placé en haut à gauche X : la première cellule du TCD en haut à gauche 8. enregistre le tout. Si pb n'hésite pas ![]() |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: décembre 2005
Messages: 4
|
héhé salut a toi psycopat d'excel, a 23h!!!!! :woohoo:
en tout cas je te remercie. Je matte un peu la syntaxe et le deroulement du script, mais lors de la compilation une erreur est signalé sur : Sub ActualiseTCD() je sais que je vais t'en demander un peu beaucoup mais pourrais tu me donner en francais chaque ligne de commande que tu m'as envoyé, pour comprendre ensuite le problème. Car je ne suis pas encore familiarisé avec. Je te remercie d'avance et si je puis t'aider plus tard, n'hesite pas Stéphane |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
|
Bonjour,
Pourrais-tu me dire où tu as une erreur ? Vérifie : - ton tableau croisé doit être nommé 'TCD'. - le nom de ta worksheet où se trouve le TCD -> veille bien à ne pas mettre d'espace (au besoin mets -> '_' entre les noms) - à Range.... remplace bien le X comme je te l'ai indiqué soit RANGE('A1') par exemple. Pour les explications, il me faut un peu de temps pour t'écrire tout cela. ![]() |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|