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 :

Programmation de Tableaux Croisés [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut Programmation de Tableaux Croisés
    Bonjour et Bonne Année à tous,

    Je me suis fait une petite routine qui manipule un tableau croisé.
    Dans cette routine, je veux sélectionner un certain nombre d'item d'un champ (Dans le cas présent, il s'agit de les cocher tous).

    J'utilise le code ci-après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date Prev Livraison").CurrentPage = "(All)"
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date Prev Livraison")
            For I = 1 To .PivotItems.Count
                .PivotItems(I).Visible = True
            Next I
        End With
    .

    Le nombre d'items est de l'ordre de 400 et immanquablement la routine s'arrête sur le quatrième. Un message apparaît, me signalant
    l'erreur 1004 - Impossible de définir la propriété 'Visible' de la classe PivotItem
    Je ne comprends pas pourquoi cette erreur, les trois premiers items ont été cochés.
    Quelqu'un peut-il me dire pourquoi ce plantage ?

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Est-ce que le dévoloppement de ton quatrième item de ton TCD n'empièterait pas sur un autre TCD ou sur des quelconques cellules déjà remplies ?

    As-tu essayer de développer les items suivants ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date Prev Livraison")
            For I = 1 To .PivotItems.Count
                If I <> 4 then
                    .PivotItems(I).Visible = True
                End If
            Next I
        End With
    Tes 400 items sont dans le même PivotField ?

    J'ai trouvé ça :
    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
    Sub ShowAllItems()
    Application.ScreenUpdating = False
    Dim ws As Worksheet
    Dim objPT As PivotTable
    Dim objPTField As PivotField
    Dim objPTItem As PivotItem
     
    For Each ws In Worksheets
    ws.Visible = xlsheetvisible
        For Each objPT In ws.PivotTables
     
        With objPT
    '
    ' Run through all the row fields
    For Each objPTField In .RowFields
    '
    ' Get the hidden items and make them visible
    For Each objPTItem In objPTField.HiddenItems
    objPTItem.Visible = True
    Next 'objPTItem
    Next 'objPTField
    '
    ' Run through all the column fields
    For Each objPTField In .ColumnFields
    '
    ' Get the hidden items and make them visible
    For Each objPTItem In objPTField.HiddenItems
    objPTItem.Visible = True
    Next 'objPTItem
    Next 'objPTField
    End With
    Application.ScreenUpdating = True
     
        Next objPT
    Next ws
    End Sub
    A tester.

    Il semblerait que ton erreur vienne du fait que l'un de tes Items ne soit pas visible. A investiguer d'avantage de ton côté.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut
    Merci Kimy pour ton aide.
    Ta première solution m'a en fait permis de découvrir que le PivotItems.Count me donnait 409 alors qu'en réalité je n'ai que 404 items affichés.
    Où est passée la différence ? ???

    Je contourne le problème en gérant l'erreur, ainsi je passe outre ces 5 items fantômes et j'ai bien tous mes vrais items cochés.

    Encore merci

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    J'imagine (je parle au conditionnel) que si tu as des dates (par exemple) et que l'une d'elle n'a pas de référence celle-ci est automatiquement masquée par ton TCD tandis qu'elle est dans ton compte de PivotItems.

    Donc rendre cet Item visible est impossible. (Je répète : supposition puisque je n'ai pas ton TCD sous les yeux. ^^ )

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

Discussions similaires

  1. Tableaux croisés dynamiques
    Par JOHN14 dans le forum Access
    Réponses: 3
    Dernier message: 21/11/2006, 17h38
  2. [FAQ Excel] Les tableaux croisés dynamiques
    Par SilkyRoad dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2006, 06h45
  3. [VBA-E]Tableaux croisés dynamiques
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2006, 15h33
  4. Faire des tableaux croisés dynamique
    Par richard038 dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/04/2006, 21h51
  5. Tableaux croisés dynamiques et graphiques
    Par Marmouz dans le forum Access
    Réponses: 1
    Dernier message: 24/11/2005, 15h38

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