MAJ tous les TCD d'un classeur

  • Initiateur de la discussion Initiateur de la discussion Byboone
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Byboone

Guest
Bonjour,

J'ai un classeur avec 18 TCD à actualiser dont certains sont lié à des serveurs OLAP. Je voudrais savoir s'il y a un moyen de mettre à jour tous ces tableaux en une seule manip.

Merci pour votre aide,

Agathe
 
Re : MAJ tous les TCD d'un classeur

Bonjour,
J'ai récupéré sur le forum, il y a longtemps ce code:
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

Il pemet de "nétoyer" et actualiser tous les TCD d'un classeur actif.
Cordialement
 
Re : MAJ tous les TCD d'un classeur

Merci beaucoup,

Pour le temps, de toutes façons ce sera plus rapide que de tous les actualiser à la main, sans compter le risque d'oubli.... Donc ça ne pose pas de problème, en revanche il me semble que dans ta macro, il est demandé de nettoyer les valeurs à 0 ou -. Bref les valeurs nulles quoi... seulement je souhaiterais les garder.

Tu n'aurais pas la macro sans la notion de nettoyage?

Bonne après midi.
 
Re : MAJ tous les TCD d'un classeur

Il faut vérifier mais je pense que cete version doit marcher:
Sub DeleteOldItemsWB()
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
403
Retour