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

VBA Discussion :

[TCD/GCD] Afficher/Masquer élément


Sujet :

VBA

  1. #1
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 139
    Points
    139
    Par défaut [TCD/GCD] Afficher/Masquer élément
    Bonjour,
    j'ai un problème de macro excel. J'ai un TCD (et un GCD) avec un menu déroulant gérant ce qui doit être affiché/masqué.
    Je dois intervenir sur certains éléments de cette liste pour les Afficher ou Masquer.
    J'ai donc commencé par enregistré ma macro pour voir les élément concernés, j'ai donc pu récupérer le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With ActiveChart.PivotLayout.PivotTable.PivotFields("Exercise")
            .PivotItems("CSP - StratPlan 06 OPT v1 14-06 - 2006 - OPTIMISTIC").Visible _
            = False
            .PivotItems("CSP - StratPlan 06 v1 19-06 - 2006 - MOST LIKELY").Visible = _
            False
            .PivotItems("CSP - StratPlan BC 06 - Tests GFS - 2006 - MOST LIKELY"). _
            Visible = False
    End With
    Le problème est que la macro fonctionne tres bien pour décocher les éléments ci-dessus, mais pour les recocher (on passe à True), il me renvoie une erreur me disant que l'attribut Visible n'est pas attribuable à PivotItems.
    Pour information je suis sous Excel 2003, si quelqu'au à une solution à mon problème...
    Merci
    ACTC (certification Mac OS X/Mac OS X Server)
    Windows par obligation, Mac par délectation.
    Confirmé débutant (ou débutant confirmé) JAVA, C, PHP, JavaScript, HTML....

  2. #2
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    j´ai eu le même problème, et la solution la plus simple pour moi a été de carrément enlever le "pivot fields" concerné du TCD puis de le réintroduire, ce qui remet tous les éléments en visible.
    C´est à peu près aussi élégant qu´un monument post-stalinien, mais au-moins...
    Ci-joint à tout hasard le code pour un champs "Nature":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        ActiveSheet.PivotTables("PivotTable1").PivotFields("Nature").Orientation = _
            xlHidden
        With ActiveSheet.PivotTables("PivotTable1").PivotFields("Nature")
            .Orientation = xlColumnField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("PivotTable1").PivotFields("Nature")
            .PivotItems("inhärent").Visible = False
            .PivotItems("kontrolle").Visible = False
            .PivotItems("(Leer)").Visible = False
        End With
    Il y a sûrement une solution plus élégante dont je serais évidemment preneur, je conseille d´attendre un peu avant de mettre le topic en résolu
    J´ai l´habitude de coder comme un lance-grenades
    Alors ne vous étonnez pas si mes macros vous pétent dans les doigts...

  3. #3
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 139
    Points
    139
    Par défaut
    Merci pour ta réponse.
    J'ai par ailleurs trouvé une fonction qui marche chez moi (je ne sais pas si c'est la meilleure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub afficherMasquerCSP(Optional afficheCsp As Integer = -1)
    '
    ' Cette macro est utilisée pour Masquer/Afficher de la listes de éléments de types CSP
    '
    ' La valeur par défaut permet de changer l'etat (masquer/Afficher) selon l'état actuel de la première
    ' ligne CSP. Autrement on peut forcer l'état (ce qui est le cas avec lors du démarrage) :
    ' 0 Pour masquer
    ' 1 Pour afficher
     
        Dim pt As PivotTable
        Dim pf As PivotField
        Dim pi As PivotItem
        Dim strPF As String
        Dim first, etat As Boolean
        first = True
     
        If afficheCsp <> -1 Then
            first = False
            If afficheCsp = 0 Then
                etat = False
            Else
                etat = True
            End If
        End If
        Set pt = ActiveChart.PivotLayout.PivotTable
        Set pf = pt.PivotFields("Exercise")
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        On Error Resume Next
           With pf
            .AutoSort xlManual, .SourceName
             For Each pi In .PivotItems
                 If Left(pi.Name, 3) = "CSP" Then
                 If first Then
                    etat = Not pi.Visible
                    first = False
                End If
                 pi.Visible = etat
                End If
             Next pi
            .AutoSort xlAscending, .SourceName
            End With
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
        MiseEnFormeGCD
    End Sub
    J'ai trouvé des informations sur le site suivant :
    http://www.contextures.com/xlPivot03.html
    ACTC (certification Mac OS X/Mac OS X Server)
    Windows par obligation, Mac par délectation.
    Confirmé débutant (ou débutant confirmé) JAVA, C, PHP, JavaScript, HTML....

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

Discussions similaires

  1. Afficher/Masquer élément au chargement dans un formulaire dynamique
    Par titinesaku dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 01/06/2011, 17h50
  2. Afficher / masquer élément
    Par malabarbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/03/2010, 10h42
  3. Préchargement Comportement "Afficher-masquer les éléments" Dreamweaver CS4
    Par Pola-X dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/02/2010, 13h17
  4. Réponses: 5
    Dernier message: 15/12/2009, 15h06
  5. [XL-2003] TCD, Afficher les éléments sans données en colonnes
    Par beb1982 dans le forum Excel
    Réponses: 4
    Dernier message: 16/04/2009, 13h38

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