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 :

[E-03] cacher un champ calculé de Tableau croisé dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut [E-03] cacher un champ calculé de Tableau croisé dynamique
    Bonjour à tous,

    J'ai un problème pour cacher un champ d'un tableau croisé dynamique.
    Je me suis servi de l'enregistreur de macro qui m'a généré ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Sheets("Feuil1").PivotTables("SimulSansHypothese").PivotFields( _
            "Somme de nar unit c.").Orientation = xlHidden
    Mon tableau s'appelle "SimulSansHypothese" et le champ que je veut cacher s'appelle "NAR unit C." (je fais une somme, d'où le nom du champ)

    Notez que j'utilise exactement le même code sur d'autres champs (qui ne sont pas calculés) et que tout se passe très bien. Je me demande si ce ne serait pas lié au fait que le champ soit calculé.
    Notez aussi que si je remet le champ dans le tableau croisé et que je relance la macro précédemment citée, l'erreur 1004 est générée ...

    J'ai également essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set pvtTable = ActiveSheet.PivotTables("SimulSansHypothese")
     
    For Each pvtField In pvtTable.DataFields
        ActiveSheet.PivotTables("SimulSansHypothese").PivotFields(pvtField.Name). _
            Orientation = xlHidden
    Next pvtField
    Mais l'erreur est toujours la même.

    L'erreur générée est la suivante :
    1004 : Impossible de définir la propriété orientation de la classe pivotfield.

    Avez-vous une idée pour passer outre ce pitit problème ?

    Merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Juste quelques remarques. Sans modifier véritablement le code, il me paraît plus correct de l'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set pvtTable = Application.Thisworkbook.Sheets("NomFeuille").PivotTables("SimulSansHypothese")
     
    For Each pvtField In pvtTable.DataFields
        pvtField.Orientation = xlHidden
    Next pvtField
    Ensuite avec ce code, tu supprimes tous les champs de données. C'est bien ce que tu veux?

    Sinon ce genre d'erreur peut se présenter si la feuille est protégée, ou si le TCD n'a pas assez de place.

    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Bonjour et merci d'avoir pris le temps de me répondre

    Citation Envoyé par pgz Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set pvtTable = Application.Thisworkbook.Sheets("NomFeuille").PivotTables("SimulSansHypothese")
     
    For Each pvtField In pvtTable.DataFields
        pvtField.Orientation = xlHidden
    Next pvtField
    Je viens d'essayer avec ce code, mais l'erreur est exactement la même.

    Citation Envoyé par pgz Voir le message
    Ensuite avec ce code, tu supprimes tous les champs de données. C'est bien ce que tu veux?
    Oui, tout a fait.

    Citation Envoyé par pgz Voir le message
    Sinon ce genre d'erreur peut se présenter si la feuille est protégée, ou si le TCD n'a pas assez de place.
    Je vais essayer cette piste.

    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    J ai trouvé une pseudo solution : plutot que de cacher le champ ... je le supprime ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Construction Simulation").PivotTables("SimulSansHypothese").CalculatedFields("MonChamp").Delete
    (c'est pas terrible, çela nécessite de recréer les champs à chaque fois, mais bon ca marche et c'est bien le principal)

Discussions similaires

  1. Créer un pourcentage deux champs d'un tableau croisé dynamique
    Par jo91160 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 19/07/2016, 11h10
  2. Réponses: 1
    Dernier message: 04/03/2011, 14h09
  3. [Toutes versions] Problème d'intégration champs dans un tableau croisé dynamique
    Par astridlet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/12/2010, 17h59
  4. [AC-2007] décimales sur champ dans un tableau croisé dynamique
    Par GILLES_M dans le forum IHM
    Réponses: 2
    Dernier message: 31/10/2010, 17h35
  5. Réponses: 12
    Dernier message: 20/01/2009, 10h17

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