Visible property of a Pivot Item class.

  • Initiateur de la discussion Initiateur de la discussion _Boris_
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

_Boris_

XLDnaute Nouveau
Bonjour à tous,

Je travaille sur une macro censée trier les items d'une Pivot Table selon un critère (ici, la date).
Cependant lors de l'exécution apparait systématiquement l'erreur:
Run-time error '1004': Unable to set the Visible property of the Pivot Item class.
Lors du debug, la ligne posant problème est pi.visible = False dans le code ci-après.

J'ai essayé d'autres codes, mais il refuse systématiquement de changer la propriété d'un pivot item en "visible". Je ne comprends pas pourquoi.
Après avoir cherché sur internet il apparait que cette erreur est récurrente, mais je n'ai pas trouvé de solution adaptée à mon cas.

Voici la macro en question. Il s'agit d'une boucle qui compare chaque date associée à une entrée à une date butoir. Si la date de l'entrée est postérieure à la date butoir, l'item doit être caché.
Au départ de la macro je lance l'exécution d'une autre macro, trouvée sur internet, supposée résoudre ce problème. Malheureusement rien n'a changé. Je vous copie le code de l'autre macro en dessous.

Code:
Sub HideShowFields()

Sheets("Pivot Table").Select
Application.Run "'(2011-07-12) Liste BKR v2.xls'!PivotShowItemAllVisible"

Dim pt As PivotTable

Dim pi As PivotItem


Worksheets("Pivot Table").PivotTables("PivotTable1").PivotFields("Entry date").Orientation = xlRowField

    Set pt = ActiveSheet.PivotTables("PivotTable1")
   
    pt.ManualUpdate = True

    
  

        For Each pi In pt.PivotFields("Entry date").PivotItems


            Select Case pi.Value

                Case Is > Sheets("Formulaire").[G28].Value

                    pi.visible = False               

                Case Else

                    pi.visible = True

            End Select

        Next pi

    

    pt.ManualUpdate = False


End Sub


Et voici la macro "miracle", qui ne change rien.

Code:
Sub PivotShowItemAllVisible()

'sort is set to Manual to prevent errors, e.g.
'unable to set Visible Property of PivotItem class

Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem

Application.ScreenUpdating = False
Application.DisplayAlerts = False

On Error Resume Next


For Each pt In ActiveSheet.PivotTables
  
      For Each pf In pt.RowFields
   
                pf.Autosort xlManual, pf.SourceName

                                  For Each pi In pf.PivotItems
                                      pi.visible = True
                                  Next pi

               pf.Autosort xlAscending, pf.SourceName

     Next pf

Next pt


Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

Comment se débarrasser de cette erreur?

Merci pour votre aide,
Boris
 
Re : Visible property of a Pivot Item class.

Bonjour,

essaye peut être ainsi :
Code:
Sub HideShowFields()

Sheets("Pivot Table").Select
Application.Run "'(2011-07-12) Liste BKR v2.xls'!PivotShowItemAllVisible"

Dim pt As PivotTable

Dim pi As PivotItem

Worksheets("Pivot Table").PivotTables("PivotTable1").PivotFields("Entry date").Orientation = xlRowField

Set pt = ActiveSheet.PivotTables("PivotTable1")
   
    pt.ManualUpdate = True

        For Each pi In pt.PivotFields("Entry date").PivotItems
            pi.Visible = True
        Next pi

        For Each pi In pt.PivotFields("Entry date").PivotItems

            Select Case pi.Value

                Case Is > Sheets("Formulaire").[G28].Value

                    pi.Visible = False

                Case Else

                    pi.Visible = True

            End Select

        Next pi
    
    pt.ManualUpdate = False

End Sub

bonne journée
@+
 
Re : Visible property of a Pivot Item class.

Merci pour ta réponse rapide Pierrot.
Ca semblait être une bonne idée, mais malheureusement l'erreur apparaît toujours, cette fois c'est le premier pi.Visible = True qui coince.
C'est comme si le compilateur était incapable de changer quoi que ce soit sur la visible property.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probleme de code
Réponses
0
Affichages
455
Réponses
22
Affichages
3 K
Réponses
1
Affichages
873
Réponses
1
Affichages
1 K
Retour