Bonjour,

Ce n'est pas mon premier message sur le forum mais mon premier sujet...

je vous explique:

J'ai un fichier avec plusieurs TCD qui utilisent tous comme FILTRE DU RAPPORT la même valeur (N° SEMAINE dans mons cas).

J'ai réussi à créer sur un autre onglet une liste déroulante reprenant les 52 numéro de semaine et j'ai affecté à cette onglet une macro qui, quand je choisi mon numéro de semaine dans la liste déroulante, modifie tous les TCD de mon fichier et les actualise.

Voici le code intégré à mon onglet:

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
Option Explicit
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim ws As Worksheet
Dim pt As PivotTable
Dim pi As PivotItem
Dim strField As String
 
strField = "N° SEMAINE"
 
On Error Resume Next
Application.EnableEvents = True
Application.ScreenUpdating = False
 
    If Target.Address = Range("AB1").Address Then
 
        For Each ws In ThisWorkbook.Worksheets
            For Each pt In ws.PivotTables
                With pt.PageFields(strField)
                    For Each pi In .PivotItems
                        If pi.Value = Target.Value Then
                            .CurrentPage = Target.Value
                            Exit For
                        Else
                            .CurrentPage = "(All)"
                        End If
                    Next pi
                End With
            Next pt
        Next ws
 
    End If
 
Application.EnableEvents = True
Application.ScreenUpdating = True
 
End sub
Dans quels sens aller pour être capable de sélectionner plusieurs semaines et donc d'avoir un affichage mensuel ?

NB: Je sais faire des copier/coller de code et commence à comprendre comment ils fonctionnent (dans les grandes lignes) mais incapable de créer mon code de toutes pièces.

Un énorme merci à vous.

Bonne soirée.

[EDIT] en tapant mon message je pense avoir trouvé la solution....
Il me suffit de créer une nouvelle colonne avec une formule du genre =MOIS comme j'ai fais pour la semaine et recréer une nouvelle macro du même type que précédemment.

Je post quand même car je suis intéressé d'avoir la réponse à ma question initiale.