XL 2010 Tableau croisé dynamique - sélection à partir d'une partie de référence

Fanchtang

XLDnaute Nouveau
Bonjour,

C'est avec plaisir que je rejoins votre forum ce jour. Cela fait plusieurs années que j'utilise ici et là des macros excel pour différents sujets et je n'avais encore rejoins aucun groupe.

Je commencerai par la problématique qui m'a encouragé à m'inscrire.

J’utilise des tableaux croisés dynamique(TCD) reliés à plusieurs sources de données (issues d'SAP). J'affiche les graphiques issus de ces mêmes TCD sur une seule feuille.
L'affichage commun me permet de comparer les données.
exemple :
==> commande et date de besoin
==> livraison interne et date de fin de production

Afin de traiter simultanément les champs des TCD j'ai créé une macro.
Par exemple si je rentre "dentifrice", 2020, 2021 - mes 2 tableaux vont afficher les données sur le dentifrice entre 2020 et 2021 via un simple filtre dans les TCD. Cela fonctionne très bien quand je connais précisément ma recherche. Jusque là rien de bien difficile.

Et voilà que je me rends compte que pour certaines données ce n'est pas suffisant. Car j'ai des éléments qui complexifient ma recherche et de nouvelles données que je ne connais pas qui peuvent arriver. Exemple "dentifrice bleu", "dentifrice dents blanches" ou "super dentifrice"...
Et donc il peut être nécessaire de sélectionner avec ma macro dans le TCD toutes les valeurs contenant *dentifrice*. Et avec efficacité car l'un de mes tableaux fait 27000 lignes...
Cela ne pose aucun problème manuellement mais en VBA je ne trouve pas.

J'ai cherché sur internet et sur ce forum sans succès car je dois utiliser les mauvais termes pour ma recherche.
Auriez-vous une idée sur une solution VBA permettant la même action qu'en manuel ?
Ou à défaut, une recherche sur le tableau de donnée pour extraire l'ensemble des champs contenant les caractères associés ce qui me permettrait de les utiliser ensuite.

Merci pour l'aide que vous pourrez m'apporter !!!

P.S : j'ai envisagé une solution de balayage ligne à ligne et colonne à colonne dans la feuille excel - j'y serai parvenu mais cette solution me semble très peu efficace.
P.P.S : je n'ai pas actuellement avec moi le fichier excel sur lequel je travaille. S'il est nécessaire je le transmettrai.
 

chris

XLDnaute Barbatruc
Bonjour

A priori
VB:
    ActiveSheet.PivotTables("Nom du TCD").PivotFields("Nom du champ"). _
        PivotFilters.Add Type:=xlCaptionContains, Value1:="dentifrice"
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas