Trier automatiquement la table pivot liée aux données en deux dimensions dans Excel 2007 à l'aide de VBA

StackOverflow https://stackoverflow.com//questions/23058352

  •  26-12-2019
  •  | 
  •  

Question

Voici une question gênante.J'ai une table pivot dans une feuille de calcul Excel qui obtient ses données directement à partir d'une requête SQL Server.

La table contient des clients sur l'axe vertical et les dates de l'accès horizontal.Les deux doivent être correctement triés - c'est-à-dire des clients comme haut alphabétique en haut et dates à la date d'ordre de gauche à droite.

Je suis assuré que les données sortantes de SQL sont reconnues par Excel comme champ de date.Vous pouvez trier les dates avec succès à l'aide de la fonction manuelle A-Z.Mais je dois le faire automatiquement à l'aide de VBA.

J'avais espéré (Againt Hope) que l'utilisation de deux paramètres de tri sur la requête SQL pourrait faire le tour:

sql = "SELECT * FROM myView ORDER BY Customer, Date"

Set pt = Worksheets("MyReport").PivotTables("MyPivot")
pt.PivotCache.CommandText = sql
pt.RefreshTable

Mais ça ne le fait pas.

Je vois que dans Excel 2010, il y a une fonction d'autosort pratique qui devrait faire ce dont j'ai besoin.Mais je suis bloqué avec 2007. Y a-t-il un moyen de trier mes données dans les deux dimensions?

Était-ce utile?

La solution

Il y a une fonction d'autosort dans Excel 2007, mais elle appartient à l'objet Pivotfields, plutôt que de la table pivot elle-même.

Dim pt As PivotTable
Set pt = Worksheets("myWorksheet").PivotTables("myPivotTable")
pt.PivotFields("DATE").AutoSort xlAscending, "DATE"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top