Bonjour,
N'ayant pas trouvé la solution à mon problème, je réalise donc mon premier POST sur ce forum. Merci d'avance pour votre temps
Dans le fichier joint, j'ai 3 feuilles :
- Saisie qui contient mes données,
- une page de Configuration,
- le graphique issu d'un TCD
Mon problème est le suivant :
Lorsque j'exécute la Macro de la feuille "Graphique Salarié", la macro me renvoie le message suivant : "erreur exécution 1004 impossible de définir la propriété visible de la classe pivotitem".
J'ai remarqué que le problème survient au moment où elle commence à sélectionner les items correspondant à la plage de date sélectionnée (en rouge dans la macro ci-dessous !)
Suis-je suffisamment clair pour qu'une âme charitable puisse m'aider ?
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 Dim datetest As Double, Datedeb As Double, Datefin As Double Application.ScreenUpdating = True nomsal = CombSalarié.Text Sheets("Graphique Salarié").Visible = True Sheets("Menu").Visible = False Sheets("Graphique Salarié").Select ActiveWorkbook.RefreshAll ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Tâches").ClearAllFilters ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Tâches").PivotFilters.Add Type:=xlCaptionDoesNotEqual, Value1:="(vide)" ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Salarié"). _ CurrentPage = nomsal DD = Format(Me.DTPicker1, "dd/mm/yyyy") DF = Format(Me.DTPicker2, "dd/mm/yyyy") ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date"). _ ClearAllFilters Datedeb = CDate(DD) Datefin = CDate(DF) ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date"). _ CurrentPage = "(All)" With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _ "Date")[/COLOR] .PivotItems(1).Visible = True For i = 2 To .PivotItems.Count .PivotItems(i).Visible = False Next For i = 2 To .PivotItems.Count MsgBox .PivotItems.Count datetest = CDate(Format(.PivotItems(i).Value, "DD/MM/YYYY")): MsgBox datetest If datetest < Datedeb Or datetest > Datefin Then .PivotItems(i).Visible = False Else .PivotItems(i).Visible = True Next datetest = CDate(Format(.PivotItems(1).Value, "DD/MM/YYYY")): MsgBox datetest If datetest >= Datedeb Then .PivotItems(1).Visible = True Else .PivotItems(1).Visible = False End With Application.ScreenUpdating = True
Merci beaucoup.
Partager