Bonjour,
Ayant un problème avec une macro VBA, je me permets de demander votre aide!
Je voudrais pouvoir imposer un filtre "date" en retenant les 4 dernières périodes lors d'une mise à jour du TCD.
Donc dans l'onglet période, l'utilisateur renseigne la date de l'importation des données. Ma formule à coté retient les 4 dernières périodes en tant que période 1, période2, période 3, période 4.
En cliquant sur mise à jour ma macro se lance pour retenir que les 4 dernières période dans le TCD.
Le TCD est issu des données de l'onglet détail facture.
Ci joint ma macro: Dans celle-là je n'arrive pas à imposer les périodes. Je pense n'ai pas très bien compris le rôle de
.PivotItems(i.Value).Visible = False. (avec Excel 2010)
Je joindrais le fichier filtre_TCD par la suite. (J’ai un problème de par feux)
D'avance merci de votre aide et de votre temps. !!!
Cordialement,
Sub miseajour()
Dim periode1, periode2, periode3, periode4 As Date
Dim PvI As Object
Sheets("23 - Période").Activate
periode1 = Cells(6, 4).Value
periode2 = Cells(7, 4).Value
periode3 = Cells(8, 4).Value
periode4 = Cells(9, 4).Value
Sheets("19 - RAFF Qté Zone").Select
Sheets("19 - RAFF Qté Zone").Activate
'Set Field = Sheet.PivotTables("14 - Graph Détail RAFF Qté Zone").PivotFields("[Date Observation].[Calendrier].[Annee]").VisibleItemsList = Array("")
'Sheet.PivotTables("14 - Graph Détail RAFF Qté Zone").PivotFields("[Date Observation].[Calendrier].[Mois]").VisibleItemsList = Array("", "[Date Observation].[Calendrier].[Mois].&[" & rng2 & "]", "[Date Observation].[Calendrier].[Mois].&[" & Rng & "]", "[Date Observation].[Calendrier].[Mois].&[" & rng3 & "]")
Application.ScreenUpdating = False
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotSelect "Mois[All]", _
xlLabelOnly + xlFirstRow, True
With ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Mois")
For Each PvI In .PivotItems
Select Case PvI.Name
Case Is <> periode1 'Pour tout qui est différent de la période 1,
'Il ne m'affichera pas la date
PvI.Visible = False 'Il me donne une erreur??? or je ne comprends pas???
Case Is <> periode2
PvI.Visible = False
Case Is <> periode3
PvI.Visible = False
Case Is <> periode4
PvI.Visible = False
End Select
Next
End With
Sheets("21 - Détails Factures").Select
MsgBox ("Ok")
End Sub