IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Cacher un champ calculé dans un TCD en VBA ne semble pas fonctionner [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Cacher un champ calculé dans un TCD en VBA ne semble pas fonctionner
    Bonjour,

    Je bute sur la desactivation d'un champ calculé dans un TCD.

    Je crée divers TCD dans un fichier avec des champs calculés.
    à un moment je dupplique une feuille avec un TCD, j'effectue des manip mais il m'est impossible de cacher un champ calculé.

    J'ai beau enregistrer la macro pour le faire, à l'exécution elle bloque en erreur 1004.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.PivotTables("TCD_Stat_MPB").PivotFields("Tx Déc %").Orientation = xlHidden
    J'ai même tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.PivotTables("TCD_Stat_MPB").CalculatedFields("Tx Déc %").Orientation = xlHidden
    Ce qui marche c'est la suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.PivotTables("TCD_Stat_MPB").CalculatedFields("Tx Déch %").Delete
    mais là je suis embêté car ce champ est utilisé dans le TCD père duquel j'ai copié la feuille et ce bien que j'ai renomé le TCD.

    Merci pour vos suggestions
    Denis

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Ne peux-tu pas simplement masquer la colonne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("F").Hidden = True
    MPi²

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Cette solution n'est pas viable pour des données TCD en plus le champ apparaît dans plusieurs colonne (groupes) différents.

    Merci pour la proposition

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Points : 335
    Points
    335
    Par défaut
    Pourquoi cette solution n'est pas viable?

    Si ta colonne appairait plusieurs fois tu peux faire un if

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    oui mais il me faudrait une procédure événementielle après chaque mise à jour du TCD cacher et afficher les colonnes conernées !

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Points : 335
    Points
    335
    Par défaut
    Je ne comprend pas, aucun TCD n'est caché juste une colonne.

    Si tu veux faire un événement avant l'actualisation de ton TCD, tu peux utiliser un beforeclick et l'enregistreur de m'accro.

  7. #7
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Mais justement comme c'est une colonne 'physique' qui est cachée, si l'utilisateur change (ajoute un champ dans le TCD) alors la valeur que je voulais chcher se trouve physiquement décalée d'une colonne et réapparait tandis que la nouvelle valeur n'est pas visible car dans la colonne cachée précédamment.
    Il faudrait donc reafficher et recacher tout.

    Moi au départ je voulais juste enlever un champ de mon TCD ça marche pour plusieurs champ mais pas pour le champ calcule.

    De toute façon je n'ai pas l'intention d'ajouter une procédure événementielle dans ce fichier.

    Merci

    bon WE.

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    A priori problème ancien et connu si on farfouille sur le Web (Je découvre pour ma part )

    J'ai trouvé sur le site de www.pivot-table.com cette solution qui fonctionne sur un de mes TCD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PivotTables("TCD_Stat_MPB").DataFields("Tx Déc %").Parent.PivotItems(ActiveSheet.PivotTables("TCD_Stat_MPB").DataFields("Tx Déc %").Name).Visible = False
    Cela supprime le champ du TCD mais pas du cache donc il reste dispo pour les autres TCD.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut
    Merci Chris78, cela fonctionne parfaitement.

    J'avais aussi continué à chercher et trouvé des posts principalement en anglais.
    c'est bien un bug.
    L'autre solution que j'avais testé consistait à supprimer tous les champs calculer et à les recréer.

    Merci à tous.
    Denis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Créaction dans champ calculé dans une table par VBA
    Par FewRa dans le forum VBA Access
    Réponses: 0
    Dernier message: 12/08/2014, 16h19
  2. Réponses: 5
    Dernier message: 19/03/2013, 17h18
  3. Réponses: 3
    Dernier message: 20/09/2005, 21h07
  4. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo