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 :

VBA Cocher décocher des champs de filtre dans un TCD [Toutes versions]


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
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut VBA Cocher décocher des champs de filtre dans un TCD
    Bonjour à tous,

    Je cherche un moyen de pouvoir cocher uniquement quelques champs dans un TCD sans à avoir à faire comme le générateur de macro, c'est à dire utiliser le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PivotItems(champ).Visible = False
    pour chaque champs concerné.
    Je sais pas si cela est possible mais j'aimerai partir de la logique inverse, c'est à dire que par défaut tous mes champs soient décochés, et que ma macro ne coche que les champs qui m'intéressent. De plus j'aimerais sécuriser le tout en permettant au code de passer à un autre champ si celui que je lui demande n'existe pas dans la plage de données à traiter, ce qui est possible dans mon cas car je récupère une plage de données variable..

    Si vous avez des idées, je suis preneur !! merci beaucoup.

    François

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    utilise l'enregistreur de macro et annalyse le code généré par excel.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut
    Bonjour rdurupt,

    J'ai déjà essayé, c'est ce à quoi je faisais référence dans le début de mon message. Le générateur auto fait un listing de tout les champs et les marque en ".false".
    Comme mes champs ne sont pas forcément tous présents sur chacune de mes plages car celles-ci sont variables (et j'imagine qu'un code plus "léger doit exister" car je me retrouve avec une quarantaine de lignes de code simplement pour décocher un par un les champs), il serait intéressant de pouvoir manipuler uniquement les champs qui nous intéressent et laisser décochés les autres.

    Je creuse mais je ne vois toujours pas..!

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Si tu veux te servir des cases à cocher, je ne pense pas que tu puisses faire autrement. Tu ne peux pas tout dé-cocher pour cocher seulement certaines cases. Tu peux peut-être utiliser les filtres textuels ou numériques mais c'est plus limité.

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut
    Bonjour Daniel.C

    Ok, à la limite il faut que je fasse mon tri en amont pour pouvoir limiter mes champs TCD. Je pensais qu'il existait une solution plus simple.

    Merci de l'info en tout cas !

    François

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
    Sub test()
    Dim t() As String
     
    Dim trouve As Boolean
    ReDim t(2)
    t(0) = "1"
    t(1) = "21"
     ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Champ2"). _
            ClearAllFilters
     
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Champ2")
        For i = 1 To .PivotItems.Count
            trouve = False
            For ti = 0 To UBound(t)
                If .PivotItems(i) = t(ti) Then trouve = True: Exit For
           Next
            If trouve = True Then .PivotItems(i).Visible = True Else .PivotItems(i).Visible = False
     
        Next
     
     
        End With
    End Sub
    Dernière modification par Invité ; 08/01/2014 à 15h35.

  7. #7
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut
    Ouah super rdurupt !

    J'ai compris le principe, tu fais une boucle pour les tourner en "false" sauf si il trouve tel ou tel items spécifiques qu'il laisse alors "true". J'essaye ça de suite !

    Merci beaucoup !

  8. #8
    Membre chevronné
    Homme Profil pro
    Ctrl Gestion
    Inscrit en
    Octobre 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ctrl Gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 177
    Par défaut
    Bonjour,

    Je vois que j'arrive un peu tard.

    Même principe que rdurupt, les valeurs à afficher dans le tcd sont dans la feuille Lists

    Slts
    Fichiers attachés Fichiers attachés

  9. #9
    Invité
    Invité(e)
    Par défaut
    c'est exactement ça navré de t'avoir volé la politesse
    Dernière modification par AlainTech ; 12/01/2014 à 14h02. Motif: Suppression de la citation inutile

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

Discussions similaires

  1. VBA Cocher décocher des champs de filtre dans un TCD
    Par ancel17 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2018, 15h48
  2. Vba SQL : Titre des champs manquants dans le resultat
    Par caryl14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/11/2013, 14h50
  3. [VBA-E]Transfere des données d'Excel dans une table Access
    Par flo83 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/04/2006, 09h22
  4. Réponses: 7
    Dernier message: 09/02/2006, 16h51
  5. [VBA-A]noms des champs d'un recordset
    Par wildpenguin dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/02/2006, 09h39

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