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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    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
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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 actif
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    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 : 1828
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

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    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 587
    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...

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

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    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