Remise à zéro sur tableau croisé dynamique

Bonjour,

j'ai un petit souci avec des macros sur un tableau croisé dynamique!

j'aurai bien joint le fichier pour montrer mon problème plus que de l'expliquer, mais il est trop gros...

en fait, j'ai un tableau croisé dynamique avec 4 "choix" de sortie (je ne sais pas comment ça s'appelle, mais il s'agit des valeurs que l'on peut choisir de cocher ou décocher dans la partie colonne du tableau...). ces choix correspondent à l'état des actions, à savoir: réalisée, en cours , en retard, 0.

ma base de données est faite, mon tableau fonctionne sans problème.

là où ça coince, c'est que je souhaite avoir une page d'accueil sur laquelle la personne venant consulter les données puisse choisir de visualiser les 3 types d'états des actions.

Ma page d'accueil est faite avec des objets auxquels j'ai affecté à chacun une macro (actions réalisées, actions en cours, actions en retard).

Exemple, si je clic sur "actions réalisées", ma page avec mon tableau croisé s'ouvre avec la macro activée; jusqu'ici tout va bien!!

Je reviens sur ma page d'accueil grâce à un lien hypertexte et là je clic sur "actions en cours": c'est là que ça ne va plus, la macro bloque car la valeur "réalisée" est toujours cochée...

J'ai essayé de mettre une macro remettant le tableau avec toutes les valeurs cochées, sur le lien hypertexte en me disant que comme ça, en revenant à la page d'accueil, le tableau serait remis à zéro et qu'en cliquant sur un autre choix, cela marcherait, mais non, toujours pareil!!

Enfait, j'aimerai savoir comment faire pour que les valeurs (réalisées, en cours, en retard) de mon tableau soient mises à jour lorsque je retourne à la page d'acceuil, afin que chaque type d'état puisse être visualisé.

J'espère avoir été le plus clair possible!!

Merci d'avance pour la réponse.

A bientôt j'espère,

Arno.

Bonjour, arno

et avec un code du style :

Sub tous()

Application.ScreenUpdating = False

With Sheets("Feuil4").PivotTables("Tableau croisé dynamique2").PivotFields("état")

.PivotItems("EC").Visible = True

.PivotItems("ER").Visible = True

.PivotItems("R").Visible = True

End With

End Sub

Sub en_cours()

Application.ScreenUpdating = False

tous

With Sheets("Feuil4").PivotTables("Tableau croisé dynamique2").PivotFields("état")

.PivotItems("ER").Visible = False

.PivotItems("R").Visible = False

End With

End Sub

remarque, on lance la macro tous() à chaque demande de consultation, ce qui réinitialise le TCD, puis n'affiche que les données voulues

Bonjour,

Ce serait mieux que tu places ta macro ici mais tu peux toujours essayer ce code qui te recochera toutes les valeurs décochées.

Sub reinit()
Dim Champs As Byte, Pivots As Byte
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("TCD1")
For Champs = 1 To .PivotFields.Count
For Pivots = 1 To .PivotFields(Champs).PivotItems.Count
    .PivotFields(Champs).PivotItems(Pivots).Visible = True
End With
Next Pivots
Next Champs
Application.ScreenUpdating = True
End Sub

La macro doit être exécutée avant de quitter la feuille du TCD.

Avec "TCD1" le nom de ton TCD que tu trouves dans "option du tableau" par clique droite dans le TCD.

Pour Felix : dans APPLICATION.SCREEN.... veille à remttre FALSE à TRUE lorsque tu quittes la macro.

A te lire

Dan

Bonjour Nad-dan

Pour Felix : dans APPLICATION.SCREEN.... veille à remttre FALSE à TRUE lorsque tu quittes la macro.

Vaste sujet, n'est-ce point une ligne "joker", l'application revenant à True dès la fin du code.

D'ailleurs, un petit test :

insère cette ligne avant App....= True

x = Application.ScreenUpdating

tu auras donc False

Maintenant termine le code sans ta ligne remettant à True, et lance une nouvelle procédure ne comportant que cette ligne (x = ...), elle sera à True.

Même si la macro s'est interromptue de façon inattendue, la valeur revient à True

Donc, nécessaire ou non?

Re,

Oui Felix, vaste sujet. J'ai lu pas mal de chose là dessus.

Une fois il était dit que le TRUE était nécessaire et une autre fois NON.

Ton test confirme ce que tu viens de dire.

Maintenant dans une sute de procédures et notamment en cas d'affichage d'une MSGBOX, il pourrait être nécessaire de la remettre à True pour un instant.

De mon coté, j'ai toujours pris le principe de la remettre à TRUE dans mes propositions mais dans cette macro, je te donne raison, l'instruction peut être évitée.

Amicalement

Dan

Rechercher des sujets similaires à "remise zero tableau croise dynamique"