Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 08h19   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 42
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 42
Points : 11
Points : 11
Par défaut Sélection multicritères TCD

Bonjour,

Après plusieurs recherches infructueuses sur le net, j'en viens à solliciter (encore une fois) votre aide.

je dois générer des fichiers (environ 150) relatifs à des agences situées partout en france te en europe.
J'ai plusieurs onglet avec mes données de base et un onglet avec plein de TCD qui traite l'info comme je la souhaite.

Une boucle vient chercher le numéro de l'agence que je traite et vient actualiser les différents TCD.

Mon problème se pose au niveau de la consolidation des pays car il faut que je sélectionne plusieurs critères à la fois.

en utilisant la fonction "enregistrer macro", ça me donne un code comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DIRECTION"). _
        CurrentPage = "(Tous)"
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "DIRECTION")
        .PivotItems("BELGIQUE").Visible = False
        .PivotItems("ESPAGNE").Visible = False
        .PivotItems("IRLANDE").Visible = False
        .PivotItems("LUXEMBOURG").Visible = False
        .PivotItems("MAROC").Visible = False
        .PivotItems("NEDERLAND").Visible = False
        .PivotItems("PORTUGAL").Visible = False
        .PivotItems("SUISSE").Visible = False
        .PivotItems("UNITED KINGDOM").Visible = False
        .PivotItems("(vide)").Visible = False
    End With
j'aimerais éviter de devoir préciser pour chaque critère s'il est visible ou non car cela présente de gros risques de se planter...

Y a t-il un moyen de tout sélectionner/dé-sélectionner puis de choisir seulement les critères que l'on souhaite ??

D'avance merci pour votre aide
ridokou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 14h21   #2
Membre habitué
 
Homme Ludo
Inscription : février 2010
Messages : 104
Détails du profil
Informations personnelles :
Nom : Homme Ludo
Localisation : France

Informations forums :
Inscription : février 2010
Messages : 104
Points : 135
Points : 135
Bonjour,

Peut-être en rendant invisible le tout et en imposant une condition pour laisser les pays désirés visibles :

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
Sub test()
 
Dim pvitem As PivotItem
Dim tableau As PivotTable
 
'On déclare notre tableau
Set tableau = ActiveSheet.PivotTables("Tableau croisé dynamique1")
 
'Pour tout les items du champ DIRECTION
For Each pvitem In tableau.PivotFields("DIRECTION").PivotItems
 
    'Si différent du pays désiré, alors on masque le champ
    If pvitem <> "Le pays désiré" Then
        pvitem.Visible = False
 
    'Sinon on affecte l'item au champ direction (si vous ne souhaitez afficher qu'un seul pays)
    Else
 
        tableau.PivotFields("DIRECTION").CurrentPage = pvitem.Caption
    End If
 
Next
 
End Sub
Peut être faut-il écrire la condition de cette facon, à vérifier :

Code :
If pvitem.Caption <> "Le pays désiré" Then
__________________
Cordialement
LouiMz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h52.


 
 
 
 
Partenaires

Hébergement Web