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:
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.
Et voici la macro "miracle", qui ne change rien.
Comment se débarrasser de cette erreur?
Merci pour votre aide,
Boris
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:
Lors du debug, la ligne posant problème est pi.visible = False dans le code ci-après.Run-time error '1004': Unable to set the Visible property of the Pivot Item class.
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