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 filtrer les TCD sur valeur d'une cellule mais en faisant un startswith


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    Points : 24
    Points
    24
    Par défaut VBA filtrer les TCD sur valeur d'une cellule mais en faisant un startswith
    Hello

    J’ai créé ce code pour appliquer la valeur d’une cellule comme étant le filtre de plusieurs TCD :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub FiltersON()
     
     
     
    Dim pfUK As PivotField
    Dim pfSW As PivotField
    Dim pfFR As PivotField
    Dim pfTR As PivotField
    Dim pfGE As PivotField
     
     
    Set pfUK = Sheets("UK TD").PivotTables("Tableau croisé dynamique UK").PivotFields("t_item")
    Set pfSW = Sheets("SWEDEN TD").PivotTables("Tableau croisé dynamique SW").PivotFields("t_item")
    Set pfFR = Sheets("FRANCE TD").PivotTables("Tableau croisé dynamique FR").PivotFields("t_item")
    Set pfTR = Sheets("TURKEY TD").PivotTables("Tableau croisé dynamique TR").PivotFields("t_item")
    Set pfGE = Sheets("GERMANY TD").PivotTables("Tableau croisé dynamique GE").PivotFields("t_item")
     
     
     
     
     
     
      pfUK.ClearAllFilters
      pfUK.CurrentPage = ActiveSheet.Range("B3").Value
     
      pfSW.ClearAllFilters
      pfSW.CurrentPage = ActiveSheet.Range("B3").Value
     
      pfFR.ClearAllFilters
      pfFR.CurrentPage = ActiveSheet.Range("B3").Value
     
      pfTR.ClearAllFilters
      pfTR.CurrentPage = ActiveSheet.Range("B3").Value
     
      pfGE.ClearAllFilters
      pfGE.CurrentPage = ActiveSheet.Range("B3").Value
     
     
     
     
     
    End Sub

    Là il me filtre valeur cellule = valeur filtre

    Je voudrais qu’il prenne la valeur de la cellule et fasse comme un startswith. C’est-à-dire qu’il considère que le filtre des TCD = valeur cellule*.

    Avez-vous une piste, j’ai essayé plusieurs trucs sans succès.

    Merci-

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 586
    Points : 34 255
    Points
    34 255
    Par défaut
    Salut,

    que t'as donné l'enregistreur de macros ?

    En faisant un rapide test de mon côté, cela me donne cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "ID").PivotFilters.Add Type:=xlCaptionBeginsWith, Value1:="RA"
    Je ne doute pas de ta capacité à adapter ce code à ton cas de figure
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse,

    J'ai adapté le code mais j'ai une erreur, je pense que c'est parce que mes TCD n'ont pas le système de filtre élaboré que l'on essaye d'utiliser. Exemple d'un des TCD et de son filtre sur "t_item", tous les autres sont pareils:

    Nom : ef.png
Affichages : 1552
Taille : 20,8 Ko

    Sais tu comment changer ce type de filtrage pour accéder aux options supplémentaires de filtrage ?

    Merci d'avance

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 405
    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 405
    Points : 16 245
    Points
    16 245
    Par défaut
    Bonjour

    Les champs placés en zone de filtre ou page, ont effectivement beaucoup moins de possibilités.

    Donc soit les placer en ligne, soit cela va faire un VBA plus compliqué...

    A noter que "filtre élaboré" (rebaptisé filtre avancé depuis 2007) désigne dans Excel quelque chose de bien précis qui n'a rien à voir avec les TCD...
    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é...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Hello,

    J'ai changé l'emplacement du filtre depuis la zone de filtre vers le tableau lui même et du coup j’accède aux options qui m’intéressent.

    Le code s'est adapté easy.

    Merci encore

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

Discussions similaires

  1. [XL-2010] Afficher les valeurs d'une cellule d'un TCD en VBA
    Par yzf-r dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2019, 02h14
  2. Réponses: 4
    Dernier message: 26/10/2015, 23h31
  3. Réponses: 4
    Dernier message: 01/02/2013, 16h01
  4. Réponses: 5
    Dernier message: 09/08/2011, 12h36
  5. [VB6] Filtrer les entrées sur une BD access
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/06/2009, 17h20

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