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

Excel Discussion :

TCD, filtres et valeurs vides


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut TCD, filtres et valeurs vides
    Bonjour à tous les pros d’Excel !

    Je me permets de faire appel à vos compétences car je suis au bout de mes possibilités malgré mes nombreuses recherches et essais.

    Dans un onglet, j’ai réussi à associer à un tableau croisé dynamique les fonctions suivantes, lorsque l’on active l’onglet :

    - Rafraichissement du TCD ;
    - Répétition des valeurs d’étiquettes de ligne pour les versions office 2003
    - Sélection de l’ensemble des valeurs du filtre « N° série/lot » sauf des valeurs vide

    Maintenant, je souhaiterai conserver les fonctions 1 & 2, mais avoir l’inverse de la fonction 3, c.a.d. n’afficher que les lignes du TCD où la valeur « N° série/lot » est vide. J’ai tout essayé avec l’enregistreur de macro et les forums mais n’y arrive pas notamment quand j’ajoute des lignes à la source de données du TCD et que je l’actualise. J’ai imaginé, via l’enregistreur de macro, la sélection de l’ensemble des valeurs pour prendre en compte les nouvelles lignes, la désélection de l’ensemble des valeurs et enfin la sélection uniquement des valeurs « vide ». Cela ne fonctionne pas automatiquement …

    Voici mon code actuel :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Activate()
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
            ActiveSheet.PivotTables("Tableau croisé dynamique1").RepeatAllLabels _
            xlRepeatLabels
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° série/lot")
            .PivotItems("(blank)").Visible = False
        End With
    End Sub

    Comment dois-je changer la dernière partie, ci-dessous, pour avoir uniquement les valeurs « vide » dans le filtre « N° série/lot » du TCD ?

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° série/lot")
            .PivotItems("(blank)").Visible = False
        End With

    Merci par avance.

    Jonathan
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Si je comprends bien, tu pourrais essayer comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Dim I As Long
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
            ActiveSheet.PivotTables("Tableau croisé dynamique1").RepeatAllLabels xlRepeatLabels
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("N° série/lot")
            .PivotItems("(blank)").Visible = True
            For I = 1 To .PivotItems.Count
                If .PivotItems(I).Caption <> "(blank)" Then
                    .PivotItems(I).Visible = False
                End If
            Next
        End With
    MPi²

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Bonjour Parmi,

    Merci pour ce retour.

    Dois-je le coller entre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Activate()
    et un ?

    Merci.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Oui,
    désolé pour l'oubli...
    MPi²

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Parmi,

    Solution proposée, solution testée ! Elle fonctionne parfait sur une source de données avec peu de ligne

    Par contre, dans le cas d'une grosse quantité donnée, il y a un message d'erreur :

    Nom : erreur.jpg
Affichages : 384
Taille : 18,9 Ko

    et dans le débogueur cela indique :

    Nom : erreur2.jpg
Affichages : 475
Taille : 48,9 Ko

    J'ai plus de 2000 lignes et donc beaucoup de N° série/lot différents, c'est peut être à cause de ça ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    D'après moi le nombre de lignes n'a pas d'influence.
    Par contre, on ne peut pas décocher tous les filtres.
    S'il n'y a pas de champs "blank", ça va probablement planter.

    Il faudrait voir quelle est la valeur retournée par PivotItems(I) quand ça plante et t'assurer qu'il y a bien des champs à "blank".
    MPi²

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    euh ...

    Comment puis-je vérifier cette valeur ?

    Désolé mais là c'est un peu premium comme difficulté enfin, pour moi !

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Quand ça plante et que tu vas dans le débogage, la ligne est surlignée en jaune.
    Passe ta souris au-dessus de PivotItems(I) pour voir sa valeur.
    MPi²

  9. #9
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Non c'est un bug Microsoft. Voir solution ici http://www.developpez.net/forums/d13...eme-item-vide/ post #8
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Merci Parmi,

    Je n'avais jamais pensé à passer ma souris au-dessus des lignes jaunes du débogueur ...

    Nom : erreur.jpg
Affichages : 513
Taille : 52,4 Ko

    J'ai fais des essais et en fait, cette fonction ne fonctionne pas quand j'ai un 2ème filtre dans le TCD. Ce 2ème filtre s'appelle "Transférée" est doit être sur "Non" pour que j'obtienne les résultats souhaités. Comment puis-je cumuler ces 2 conditions ( vide + non ) ?

    Encore merci !

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    En fait, j'aurais aimé voir le PivotItems(I).Caption ou encore la valeur du "I" pour voir s'il ne s'agit pas du dernier de la liste.
    Parce que, comme mentionné, il doit y avoir au moins un filtre activé.
    MPi²

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Bonjour Parmi,

    Finalement, cela fonctionne ... erreur de mon coté !

    Merci pour tout.

    Jonathan

  13. #13
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Pensez au bouton en bas de la discussion la prochaine fois
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



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

Discussions similaires

  1. [XL-2007] TCD: Récupération des valeurs filtrés
    Par Nelmech dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2012, 16h31
  2. [LDAP] Problème lors d'insertion de valeur vide
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/04/2006, 14h26
  3. [Tableaux] Tableau valeur vide pour une clé
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 11h49
  4. [Tableaux] Valeur vide Liste Déroulante
    Par ekinoxe dans le forum Langage
    Réponses: 1
    Dernier message: 03/12/2005, 19h47
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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