Bonjour tout le monde,
Je suis en train de tenter de filtrer un TCD par VBA sous excel 2010, pour cela j'ai trouvé deux méthodes
-Parcourir les champs du TCD et masquer les champs non séléctionner: cette méthode fonctionne mais se révèle être trop longue à l'execution.
-Utiliser la méthode PivotFilters : Cette méthode me sort l'erreur suivante "Erreur définit par l'application ou par l'objet"
Voici mon code:
J'ai beau chercher je ne trouve pas en quoi la formulation de mon PivotFilter pose problème.
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 Sub filtreTCD(ByVal champ As String, ByVal valeur As String, ByVal ajout As Boolean) If ajout Then ReDim Preserve lesValeurs(UBound(lesValeurs) + 1) lesValeurs(UBound(lesValeurs)) = valeur Else lesValeurs = Array(valeur) End If With Sheets(feuilleDestination).PivotTables("TCD").PivotFields(champ) If valeur = "TOUS" Then .ClearAllFilters Else 'Méthode 1 ' For Each i In .PivotItems ' For Each v In lesValeurs ' affiche = False ' If v = i.Value Then ' affiche = True ' End If ' If affiche Then ' i.Visible = True ' Exit For ' Else ' i.Visible = False ' End If ' ' Next ' Next i 'Méthode2 For Each v In lesValeurs .PivotFilters.Add Type:=xlCaptionEquals, Value1:=v 'Ligne qui provoque l'erreur Next End If End With Sheets(feuilleDestination).PivotTables("TCD").PivotCache.Refresh End Sub
Si vous avez des idées pour m'aider je vous remercie d'avance.
Au passage si des personnes cherche un problème semblable, j'ai trouvé le site suivant qui me semble bien fait mais qui malheureusement ne m'aide pas pour mon problème:
http://www.globaliconnect.com/excel/...=79&Itemid=475
Partager