IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Filtre sur TCD [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Par défaut Filtre sur TCD
    Bonjour,
    J'ai un Tableau croisé dynamique que j'aimerais filtrer pour n'avoir que élément numérique (0 à 9), car j'ai aussi des lettres de A à Z.
    Serait-il possible de faire un code qui permet de tester l'élément, et s'il n'est pas numérique, alors le rendre invisible ?

    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
     
    Dim pi As PivotItem
     
    'Active tous les éléments  
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Gauche component")
        .EnableMultiplePageItems = True
        .CurrentPage = "(All)" 'ou TOUS
    End With
     
    'PAr la suite, il faudrait que je cache les "non-numériques"
    'J'ai donc testé avec ça, mais ca bug à la première ligne :( 
     
    For Each pi In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Gauche component")
        If Not IsNumeric(pi) Then
     
            pi.Visible = False
     
        End If
    Next pi
    Merci de votre aide !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La boucle ci-dessous n'est pas correcte (ce n'est pas une collection)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each pi In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Gauche component")
    Il fallait ajouter .PivotItems

    Le code ci-dessous fonctionne. Il faut juste changer la valeur de la constante FldName par le nom de ton champ.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub PivotField_VisibleNumeric()
     Dim pvtItem As PivotItem
     Const FldName As String = "Division" ' Nom du champ du filtre de rapport à sélectionner
     
     Dim pvtTable As PivotTable, pvtField As PivotField
     Set pvtTable = ActiveSheet.PivotTables("Tableau croisé dynamique1")
     Set pvtField = pvtTable.PivotFields(FldName)
     For Each pvtItem In pvtField.PivotItems: pvtItem.Visible = True: Next ' Tous les filtres visibles pour éviter une erreur
     For Each pvtItem In pvtField.PivotItems
      pvtItem.Visible = IsNumeric(pvtItem) ' Active les numériques
      'pvtItem.Visible = Not (IsNumeric(pvtItem)) ' Active les non numérique
     Next
    End Sub
    La propriété CurrentPage = "(All)" ne fonctionne pas. Ni avec la valeur "All" ni avec "Tous". Je ne sais pas pourquoi mais il me semble avoir déjà rencontré ce problème
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Par défaut
    En plein une réponse qu'il me fallait ! Un gros merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Filtre sur TCD avec l'opérateur ET
    Par italia57 dans le forum Excel
    Réponses: 11
    Dernier message: 15/01/2015, 16h41
  2. filtre sur un TCD
    Par pimpom81 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/06/2012, 16h44
  3. [XL-2003] Filtre sur TCD
    Par nawakbling dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/11/2011, 11h01
  4. [XL-2007] filtre sur un TCD
    Par dodo69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/07/2011, 11h24
  5. filtre variable sur TCD
    Par FloFlosu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/02/2011, 22h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo