Trier les colonnes d'un tableau croisé dynamique

Bonjour!!!!

30test1.xlsm (68.77 Ko)

J'ai besoin de votre aide et de vos compétences en VBA

J'ai un fichier avec un onglet dans lequel il y a un tableau

Dans ce tableau on a une colonne nommée : "Macro_CCH"

Dans cette colonne on ne peut trouver que 7 données:

K-Noyaux

K-Cire

K-Moulage

K-Fusion

K-Para-TS

K-CND

K-Livraison

Donc lorsque je créer un TCD et que je glisse "Macro_CCH" dans Étiquettes de colonnes je ne peux trouver en haut que mes 7 données.

Seulement je voudrais que les étiquettes de colonnes soit dans l'ordre du processus (celui ci-dessus)

Pour cela j'ai créé une Macro donnant une place à chaque colonne selon son nom:

Sub tri()

Sheets("Feuil2").Select

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-Noyaux").Position = 1

 ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-cire").Position = 2

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-Moulage").Position = 3

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-Fusion").Position = 4

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-Para-TS").Position = 5

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-CND").Position = 6

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH"). _
        PivotItems("K-Livraison").Position = 7

End Sub

Cependant il peut arriver qu'il n'y ait aucune pièce par exemple en K-Cire

et dans ce cas là ma macro n'est pas adaptée car il ne trouve pas cette données ...

Dans le fichier joint ma macro remet en ordre la TCD de la feuille 2 (données source en Feuil1)

En Feuil 4 vous avez l'exemple pour lequel ma macro n'est pas adaptée ..

Merci pour votre aide

Pepito

Je cherche encore mais je n'ai toujours pas trouver la solution .....

Merci de votre aide

Bonjour,

code à essayer

Sub tri()
Sheets("Feuil2").Select
On Error Resume Next
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Macro_CCH")
    .PivotItems("K-Noyaux").Position = 1
    .PivotItems("K-cire").Position = 2
    .PivotItems("K-Moulage").Position = 3
    .PivotItems("K-Fusion").Position = 4
    .PivotItems("K-Para-TS").Position = 5
    .PivotItems("K-CND").Position = 6
    .PivotItems("K-Livraison").Position = 7
End With
End Sub

Cela suppose un seul TCD.

Si ok, lors de ta réponse clique sur le V vert à coté du bouton EDITER pour cloturer le fil

Crdlt

Merci Dan

C’était le "on error resume next" qu'il me fallait

Merci beaucoup

Pepito

Rechercher des sujets similaires à "trier colonnes tableau croise dynamique"