XL 2016 comment récupérer le nom des champs de second niveau d'un TCD sélectivement

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Markess

XLDnaute Nouveau
Bonjour,

Dans mon TCD, j'affiche le nom des clients et pour chaque client leurs articles.
Je souhaiterais pour un client particulier récupérer le nom des articles par macro.

exemple pour le client B : carte 12 et carte x

Pouvez-vous m'aider ?
Merci
 

Pièces jointes

Bonjour Markess, le forum

quelle est la finalité de ta demande ?
récupérer par macro le nom des articles par client ne veut rien dire, le TCD fait déjà ça très bien !

Cordialement, @+
Bonjour,

Le but d'exploiter les lignes sélectionnées pour tracer les évolutions journalières ou mensuelles des mouvements de quantité et de montant.

En gros, je coche la ligne client (checkbox ou optionbutton) et ma macro récupère l'ensemble des articles de ce client pour faire le reporting.

J'ai donc besoin des titres des lignes ( les articles). Le fichier posté n'est qu'un exemple pour illustrer mon problème.

Cordialement
Markess.
 
Bonjour Markess, le forum

je comprends toujours pas trop comment tu veux faire, j'ai modifié ton code, cela répondra peut être à ta demande.

Cordialement, @+
VB:
Sub recup()
'
Dim tablo As PivotTable
Dim ref1, ref2 As PivotField
Dim valeur As PivotItem
Dim rang As Range
Dim client As String
Dim carte As Variant
Dim ok As Boolean

    client = "Client B"
'
'
    On Error Resume Next
    With Sheets("Extraction")
        .Select
        With .PivotTables("TCD_extract").PivotFields("Clients")
            .ClearAllFilters
            For Each valeur In .PivotItems
                If valeur = client Then
                    ok = True
                Else
                    valeur.Visible = False
                End If
            Next valeur
            If Not ok Then .ClearAllFilters: MsgBox "Pas de client à ce nom"
        End With
    End With
    
End Sub
 
Bonjour Yeahou,

Merci pour ton temps.

A force d'essayer on y arrive. ci-dessous la solution (simple quand on la trouve).



VB:
Sub copycolle()
Dim client As String

    client = "Client E"
    Worksheets("Extraction").Select
'    Sheets("Extraction").PivotTables("TCD_extract").PivotFields("Clients").ShowDetail = True
    Worksheets("Extraction").PivotTables("TCD_extract").PivotFields("Clients").PivotItems( _
        client).ShowDetail = True
    Worksheets("Extraction").PivotTables("TCD_extract").PivotSelect client, xlLabelOnly
    Selection.Copy
    Sheets("A").Select
    Range("A3").Select
    ActiveSheet.Paste
    Worksheets("Extraction").PivotTables("TCD_extract").PivotFields("Clients").PivotItems( _
        client).ShowDetail = False

End Sub

Bonne journée.
Markess
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
846
Réponses
7
Affichages
696
Réponses
3
Affichages
673
Réponses
4
Affichages
544
Réponses
2
Affichages
422
Retour