Dans une macro, alimenter un fichier à partir d'un TCD dans une macro

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 !

lamailloche

XLDnaute Junior
Bonsoir
Je voudrai à partir d'un tableau croisé, alimenter des fichiers mais la macro bug quand je réactualise le TC suite à mise à jour et qu'une valeur est absente.
Un fichier en pièce jointe pour illustrer.
La macro
For Each Pt In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ville").PivotItems
Pt.Visible = True
If Pt.Name = "Marseille" Then Pt.Visible = True Else Pt.Visible = False
Next Pt
La réponse doit être dans le forum mais je n'ai pas su trouver !
Merci pour votre aide.
 

Pièces jointes

  • TC.zip
    TC.zip
    19.6 KB · Affichages: 20
  • TC.zip
    TC.zip
    19.6 KB · Affichages: 18
  • TC.zip
    TC.zip
    19.6 KB · Affichages: 19
Dernière édition:
Re : Dans une macro, alimenter un fichier à partir d'un TCD dans une macro

Bonjour,

essaye ceci :
Code:
Sub Macro4()
For Each Pt In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ville").PivotItems
    Pt.Visible = True
Next Pt
For Each Pt In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ville").PivotItems
    If Pt.Name <> "Marseille" Then Pt.Visible = False
Next Pt
End Sub

bonne journée
@+
 
Re : Dans une macro, alimenter un fichier à partir d'un TCD dans une macro

Bonjour Pierrot93
J'ai essayé après avoir supprimé des Données source Grenoble et réactualisé le TC et ca bug sur la ligne "Pt.Visible = True" avec le message d'erreur "Impossible de définir la propriété Visible de la classe PivotItem"
 
Re : Dans une macro, alimenter un fichier à partir d'un TCD dans une macro

Re,

oui, normal si des données source sont supprimées... modifie comme suit :
Code:
Sub Macro4()
For Each pt In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ville").PivotItems
    If pt.RecordCount > 0 Then pt.Visible = True
Next pt
For Each pt In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ville").PivotItems
    If pt.Name <> "Marseille" Then pt.Visible = False
Next pt
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

Discussions similaires

Retour