VBA TCD - Macro Tableau Croisé Dynamique - Help Bug

jce

XLDnaute Nouveau
Bonjour les amis fans d'Excel (comme moi),

J'ai réalisé une macro qui ronronne bien ... et qui utilise un TCD (Tableau Croisé Dynamique). Ce TCD est constitué de manière automatique avec ma macro (no problemo).

Par contre, j'ai un soucis au niveau des filtres du rapport ...je me suis aperçu que lorsque je demande un nom pour lequel aucune valeur n'existe, le filtre ne me met pas une liste vide dans le TCD mais conserve les valeurs précédentes (celles figurant avant la valeur absente).

Cela me génére des problèmes lors de la recopie des données ultérieurement dans ma macro.

Est ce que quelqu'un aurait une solution a m'apporter ? Merci par avance ...
 

Bebere

XLDnaute Barbatruc
Re : VBA TCD - Macro Tableau Croisé Dynamique - Help Bug

bonjour Jce
essaye ce code
' Alain Vallon
'haut page
'Etiquettes persistantes
'J 'ai crée un TCD avec en ligne les noms en colonne les mois et
'comme résultat le nombre d'heures. Lorsque que dans ma base je
'supprime toutes les lignes
'ayant le même NOM et que j'actualise le TCD, le NOM n'apparaît
'plus, mais par contre il reste toujours en mémoire dans la liste
'déroulante NOM du TCD.
'Pour tenir compte des champs calculésn ne pas oublier de
'rafraîchir le TCD avant de savoir s'il faut détruire.



Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable
' based on MSKB (202232)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer

On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
Next
End Sub

à bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 943
Membres
103 679
dernier inscrit
yprivey3