Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/02/2013, 10h26   #1
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut Filtres pivot table et vba

Bonjour,

je travaille avec xl2010 et je cherche à modifier le filtre d'un pivot table au moyen de vba; il y a bien sûr la technique d'écrire "false" ou "true" à côté des valeurs, mais cela ne m'intéresse pas. Je voudrais que le filtre prenne une valeur définie dans une variable en input.

Quelqu'un peut-il m'aider?
précision: mes pivot table sont créés sur des cubes analysis services

nb c'est ma 1ère question sur un forum, désolé si je ne la place pas dans la rubrique adéquate.
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 10h35   #2
jfontaine
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 4 692
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 39
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 4 692
Points : 9 476
Points : 9 476
Bonjour,

Comme cela?
Code :
1
2
3
4
5
Dim str As String
 
str = "ZZZ"
 
ActiveSheet.PivotTables("TCD").PivotFields("Produit").PivotItems(str).Visible = False
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 10h36   #3
Daniel.C
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 4 123
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 4 123
Points : 8 223
Points : 8 223
Bonjour,

Avec la propriété "CurrentPage", s'il n'y a qu'une valeur :

Code :
ActiveSheet.PivotTables(1).PivotFields("Noms").CurrentPage = "Nom3"
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 20h48   #4
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @ JFONTAINE

merci pour cette réponse rapide qui fonctionne bien lorsque je l'applique à un pivot table basé sur un fichier xls. Par contre, lorsque je l'applique à un pivot table basé sur un cube "analysis services", cela ne fonctionne plus:

Citation:
Run-time error’1004’ :
Unable to get the PivotFields property of the PivotTable class
.. et la phrase suivante se met en surbrillance:

ActiveSheet.PivotTables("PivotTable2").PivotFields("BPA").PivotItems(str).Visible = False

??? Merci pour votre aide!


FS
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 21h34   #5
jfontaine
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 4 692
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 39
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 4 692
Points : 9 476
Points : 9 476
Cette erreur survient quand la valeur filtrée n'existe pas.
Es tu sur de la valeur de la variable str ?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 21h52   #6
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @JFONTAINE

Afin d'être sûr du nom des champs, j'ai créé par macro recording un pivot table (macro 2 ci-dessous)

Code :
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
Sub Macro2()
'
' Macro2 Macro
'
 
'
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
        ActiveWorkbook.Connections("titan ARAG_Ssas3 Snapshot"), Version:= _
        xlPivotTableVersion14).CreatePivotTable TableDestination:="Sheet2!R9C1", _
        TableName:="PivotTable3", DefaultVersion:=xlPivotTableVersion14
    Cells(9, 1).Select
    With ActiveSheet.PivotTables("PivotTable3").CubeFields("[BPA].[BPA]")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
        "PivotTable3").CubeFields("[Measures].[Claim Book Amount]")
End Sub
 
 
 
J'ai alors adapté ta macro comme suit:
 
Sub Macro1()
'
' Macro1 Macro
'
 
'
  Dim str As String
 
 
  str = "A"
 
 
  ActiveSheet.PivotTables("PivotTable2").CubeFields("[BPA].[BPA]").PivotItems(str).Visible = False
 
End Sub

et j'obtiens l'erreur:


Run-time error ‘438’:
Object doesn’t support this property or method
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 21h55   #7
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @JFONTAINE

.. ne pas s'inquiéter du fait qu'il y a un pivot table 3 et un pivot table 2..

fernand
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 22h04   #8
jfontaine
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 4 692
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 39
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 4 692
Points : 9 476
Points : 9 476
sur quelle ligne l'erreur 438?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 23h06   #9
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @Jerome

Sur cette ligne:

Code :
ActiveSheet.PivotTables("PivotTable2").CubeFields("[BPA].[BPA]").PivotItems(str).Visible = False
Merci pour ton investissement dans cette question! Fernand
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 23h08   #10
jfontaine
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 4 692
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 39
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 4 692
Points : 9 476
Points : 9 476
As tu essayé d'utiliser l'enregistreur de macro pour choisir ton filtre afin de voir si la ligne de code est correcte ?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 09h03   #11
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @JFONTAINE

bonjour,

voici ce qui sort comme filtre avec l'éditeur de macro:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Macro5()
'
' Macro5 Macro
'
 
'
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
        ActiveWorkbook.Connections("titan ARAG_Ssas3 Snapshot"), Version:= _
        xlPivotTableVersion14).CreatePivotTable TableDestination:="Sheet3!R6C5", _
        TableName:="PivotTable6", DefaultVersion:=xlPivotTableVersion14
    Cells(6, 5).Select
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").CubeFields("[Measures].[Claim Book Amount]")
    With ActiveSheet.PivotTables("PivotTable6").CubeFields("[BPA].[BPA]")
        .Orientation = xlPageField
        .Position = 1
    End With
 
    ActiveSheet.PivotTables("PivotTable6").CubeFields(10).EnableMultiplePageItems _
        = True
    ActiveSheet.PivotTables("PivotTable6").PivotFields("[BPA].[BPA].[BPA]"). _
        VisibleItemsList = Array("[BPA].[BPA].&[A]")
End Sub




les dernières lettres " &[A] " signifient que je filtre sur la valeur A.

Le fait qu'il met tantôt 2 fois [BPA] et tantôt 3 fois est probablement dû à la hierarchie du cube
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 09h07   #12
jfontaine
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 4 692
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 39
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 4 692
Points : 9 476
Points : 9 476
Je ne peux que te conseiller d'utiliser ce code qui est adapté au Cube.
Il te faudra peut etre épurer un peu
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 09h40   #13
fernandjodoigne
Invité de passage
 
Homme fernand sprimont
Inscription : février 2013
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme fernand sprimont
Localisation : Belgique

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2013
Messages : 7
Points : 0
Points : 0
Par défaut @JFONTAINE

Merci pour ton aide!

Fernand
fernandjodoigne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h14.


 
 
 
 
Partenaires

Hébergement Web