Bonjour,
Avant d'aller plus loin, pourriez-vous regarder si cela vous convient dans l'approche pour le choix des clients
On crée la liste des clients en C7 de la feuille Choix et ce, via code en cliquant sur le bouton
Pour mettre à jour les tableaux croisé, choisir dans la liste en C7
Après je peux vous faire pour les mois
Pouvez-vous me dire ce que vous voulez dans les cas suivants
- Si le client n'est pas connu dans une des feuille, que doit contenir le Tableau croisé ?
- Si C7 de la feuille choix est vide, que doivent contenir les tableaux croisés des différentes feuilles ?
Cordialement
Edit :
Voici le code à changer pour que vous puissiez utiliser le mois en cellule C9 de votre feuille Choix.
Procédez comme suit :
- clic droite sur le nom de l'onglet de votre feuille Choix
- choisir l'option "visualiser le code"
- remplacer tout par le code ci-dessous
Option Explicit
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nomcli As String, nummois As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C7", "C9")) Is Nothing Then
nomcli = Range("C7")
nummois = Range("C9")
Dim pt As String, pfc As String, pfm As String
Dim f As Worksheet
Dim i As Byte
Application.ScreenUpdating = False
For i = 1 To 3
Select Case i
Case Is = 1: Set f = Sheets("Recap FACT"): pt = "TCD_Fact": pfc = "Clients": pfm = "Mois"
Case Is = 2: Set f = Sheets("Recap Satisfaction"): pt = "TCD_Satisf": pfc = "Client": pfm = "Mois"
Case Is = 3: Set f = Sheets("Recap Reco"): pt = "TCD_Reco": pfc = "Client": pfm = "Mois Def"
End Select
With f.PivotTables(pt)
.RefreshTable 'remise a jour des TCD
'On Error Resume Next
With .PivotFields(pfc)
If nomcli = vbNullString Then
.ClearAllFilters
.CurrentPage = "(All)" 'ou TOUS
Else: .CurrentPage = nomcli '"(All)" 'ou TOUS
End If
End With
With .PivotFields(pfm)
If nummois = vbNullString Then
.ClearAllFilters
.CurrentPage = "(All)" 'ou TOUS
Else: .CurrentPage = nummois
End If
End With
End With
Next i
End If
End Sub
Une fois mis à jour, choisir une valeur en C7 et mettre le numéro du mois en C9. Vous n'êtes pas obligé de compléter les deux cellules évidemment.
Crdlt