trier filtre de champs dans TCD sur base COMBOBOX

kikol

XLDnaute Junior
Bonjour,

après avoir réussi a trier à partir d'un combobox, les lignes d'un TCD (PivotFields) j'ai voulu appliquer la meme démarche pour le champs PageField et la rien ne se passe comme prévu. le principe utilisé pour les lignes ne marche pas pour les champs et je ne comprends pas pourquoi.

Ci dessous le code :
Private Sub MOIS_BUDGET_Change()
'Reduction du TCD sur le filtre de champ selectionné
With Worksheets("BUDGETS MENSUELS").PivotTables("Tableau croisé dynamique2").PivotFields("MOIS")
For i = 1 To .PivotItems.Count
If .PivotItems(MOIS_BUDGET.Value) = .PivotItems(i).Name Then (C'est là que çà ne marche pas!!!)
.PivotItems(MOIS_BUDGET.Value).Visible = True
Else
.PivotItems(i).Visible = False
End If
Next
End With
End Sub
Private Sub ComboBox1_Change()
'Reduction du TCD sur le filtre de champ selectionné
With Worksheets("BUDGETS MENSUELS").PivotTables("Tableau croisé dynamique2").PivotFields("N° Compte")
For i = 1 To .PivotItems.Count
If .PivotItems(ComboBox1.Value) = .PivotItems(i).Name Then
.PivotItems(ComboBox1.Value).Visible = True
Else
.PivotItems(i).Visible = False
End If
Next
End With

Sheets("BUDGETS MENSUELS").Select
A = Cells(4, 4).Value
SOLDE_AVANT.Value = A

End Sub
Private Sub CommandButton1_Click()
Dim i As Integer
With Worksheets("BUDGETS MENSUELS").PivotTables("Tableau croisé dynamique2").PivotFields("N° Compte")
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = True
Next
End With
MOIS_BUDGET.Clear
With Worksheets("BUDGETS MENSUELS").PivotTables("Tableau croisé dynamique2").PivotFields("Mois")
For i = 1 To .PivotItems.Count
MOIS_BUDGET.AddItem .PivotItems(i).Name
Next
End With
For i = MOIS_BUDGET.ListCount - 1 To 0 Step -1
If MOIS_BUDGET.List(i) = "(blank)" Or MOIS_BUDGET.List(i) = "Mois" Then MOIS_BUDGET.RemoveItem (i)
Next
ComboBox1.Clear
With Worksheets("BUDGETS MENSUELS").PivotTables("Tableau croisé dynamique2").PivotFields("N° Compte")
For i = 1 To .PivotItems.Count
ComboBox1.AddItem .PivotItems(i).Name
Next
End With
For i = ComboBox1.ListCount - 1 To 0 Step -1
If ComboBox1.List(i) = "(blank)" Or ComboBox1.List(i) = "N° Compte" Then ComboBox1.RemoveItem (i)
Next
End Sub


Merci d'avance!

Kikol
 

Pièces jointes

  • Suivi Budget EXCELDOWLOAD.xlsm
    164.1 KB · Affichages: 48
  • Suivi Budget EXCELDOWLOAD.xlsm
    164.1 KB · Affichages: 51
  • Suivi Budget EXCELDOWLOAD.xlsm
    164.1 KB · Affichages: 56

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510