Trier les colonnes d'un tableau croisé dynamique Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
P
Pepito
Jeune membre
Jeune membre
Messages : 45
Inscrit le : 31 janvier 2014
Version d'Excel : 2007

Message par Pepito » 5 février 2014, 15:37

Bonjour!!!!
test1.xlsm
(68.77 Kio) Téléchargé 27 fois
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 :wink:

Pepito
P
Pepito
Jeune membre
Jeune membre
Messages : 45
Inscrit le : 31 janvier 2014
Version d'Excel : 2007

Message par Pepito » 6 février 2014, 12:18

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

Merci de votre aide :)
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'952
Appréciations reçues : 81
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 6 février 2014, 12:42

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
@+ Dan ;)
P
Pepito
Jeune membre
Jeune membre
Messages : 45
Inscrit le : 31 janvier 2014
Version d'Excel : 2007

Message par Pepito » 6 février 2014, 12:54

Merci Dan

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

Merci beaucoup

Pepito
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message