XL 2016 TCD VBA: récupérer la position d'un champ

CharlesX

XLDnaute Nouveau
Bonjour

Je souhaite automatiser le déplacement d'un champ d'un tcd de la position filtre vers la position ligne avec un seul bouton.
Pour cela j'ai au préalable besoin de connaitre la position de ce champ.
Je n'arrive pas à utiliser les rowfields ou pagefield pour stocker ça dans une variable et ainsi déplacer en fonction de.

Je suis preneur de toutes bonnes idées.
Merci
 
Solution
Bonjour CharlesX,

Tu trouveras un exemple ci-dessous :
VB:
Sub test()
Dim l_o_pt As PivotTable
Dim l_o_ptField As PivotField
Dim l_l_position As XlPivotFieldOrientation
    
    Set l_o_pt = Feuil1.PivotTables("TCD_Test")
    Set l_o_ptField = l_o_pt.PivotFields("Société")
    
    l_l_position = l_o_ptField.Orientation
    
    If l_l_position = xlPageField Then
        MsgBox "Le champ '" & l_o_ptField & "' est placé en 'filtre'."
    ElseIf l_l_position = xlRowField Then
        MsgBox "Le champ '" & l_o_ptField & "' est placé en 'ligne'."
    End If
    
End Sub

A+

mromain

XLDnaute Barbatruc
Bonjour CharlesX,

Tu trouveras un exemple ci-dessous :
VB:
Sub test()
Dim l_o_pt As PivotTable
Dim l_o_ptField As PivotField
Dim l_l_position As XlPivotFieldOrientation
    
    Set l_o_pt = Feuil1.PivotTables("TCD_Test")
    Set l_o_ptField = l_o_pt.PivotFields("Société")
    
    l_l_position = l_o_ptField.Orientation
    
    If l_l_position = xlPageField Then
        MsgBox "Le champ '" & l_o_ptField & "' est placé en 'filtre'."
    ElseIf l_l_position = xlRowField Then
        MsgBox "Le champ '" & l_o_ptField & "' est placé en 'ligne'."
    End If
    
End Sub

A+
 

Discussions similaires

Réponses
16
Affichages
639

Statistiques des forums

Discussions
315 090
Messages
2 116 106
Membres
112 661
dernier inscrit
ceucri