Bonjour,
Sans doute le titre de mon post n'est pas très clair, bien que je l'interprète comme tel.
Dans le fichier ci-joint (test_Analyse.xlsx) j'ai créé un TCD avec VBA (à partir d'un autre classeur .xlsm).
Ce TCD comporte 3 champs:
- Date
- Vente
- Montant (Montant TTC dans l'intitulé du champ)
Pour chaque Date il y a plusieurs Vente dont le Montant est une somme du champ Montant TTC.
Jusque là tout va bien!
Avec GetPivotData je suis capable d'accéder directement au montant d'une Vente à une Date donnée.
Avec PivotItems.Count je suis capable de récupérer le nombre d'Item du champ (ex: Champ Date me donne le nombre dates différentes dans le tableau).
La dernière opération, que je ne sais comment faire, est de récupérer la liste (en objet par exemple) des Items du champ Vente en fonction d'une valeur du champ Date. Et là je sèche malgré pas mal de recherches sur les forums, mais n'arrivant pas à caractériser précisément ma recherche, je tourne un peu en rond!
En substance, voici le code qui me permet de filtrer le TCD (c'était une piste) avec la date souhaitée, mais même en essayant d'itérer la même fonction imbriquée avec le champ Vente, ça ne fonctionne pas.
L'affichage marche très bien, mais je ne sais pas comment exploiter uniquement des données affichées dans le TCD après le filtrage (je ne trouve ça pas trop "élégant" mais c'est la dernière idée que j'ai eu!).
Au final je voudrais par rapport à une Date, parcourir la liste des Vente assosiées à cette Date et récupérer le Montant de chaque Vente (pour traitement ensuite dans un tableau en mémoire pour comparaison avec un autre tableau similaire).
Merci d'avance pour votre aide!
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 Sub test_ExtractionTCD() '(stChampDateRech As String, inChampVente As Integer) 'Configuration du TCD Ventes/Vente Dim shTCDVentes As Worksheet Dim ptVentes As PivotTable Dim stChampDateRech As String Dim inChampVente As Integer Dim pi As PivotItem InitVarApp InitVarMois 'Référence feuille TCD Ventes Set shTCDVentes = wbClMois.Worksheets("Ventes") 'Référence Tableau croisé dynamique Ventes Set ptVentes = shTCDVentes.PivotTables("TCDVentes") stChampDateRech = "03/02/2022" inChampVente = 18474 With ptVentes.PivotFields("Date") For Each pi In ptVentes.PivotFields("Date").PivotItems If pi.Value <> "TOTAL" And pi.Value <> stChampDateRech Then .PivotItems(pi.Value).Visible = False End If Next End With End Sub
Partager