Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Tableau croisé dynamique

  • Initiateur de la discussion Initiateur de la discussion Mac Rault
  • 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 !

M

Mac Rault

Guest
Bonsoir le forum,

Je cherche un petit coup de pouce sur une macro en lien avec un tableau
croisé dynamique.

Ci joint le fichier et ma macro et ma demande:
je souhaiterai remplacer ("louis") par Cible4 ceci afin de me permettre d'activer ou retirer ce nom dans le TCD en fonction de la valeur
de la cellule A9

Merci d'avance pour votre aide et bonne soirée.


Sub tcd()
'
' tcd Macro
' Macro enregistrée le 15/06/2004 par users
'
Cible1 = Range("b3") 'ListBox1.Value
Cible2 = Range("e2")
Cible3 = Range("e3")
Cible4 = Range("a9")



ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Unité"). _
CurrentPage = Cible1


With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nom et prénom")
If Range("a8") = 1 Then
.PivotItems("louis").Visible = False
End If
If Range("a8") = "" Then
.PivotItems("louis").Visible = True
End If

End With
Range("c6").Select



End Sub
 

Pièces jointes

Bonsoir,
A mon avis il n'y a pas de problème à condition de
Dim Cible4$
ensuite tu remplaces tes .PivotItems("louis") ... par
.PivotItems(Cible4)...
et ça marche. Enfin ça ne produit pas d'erreur si tu mets bien un nom en A9 sinon ça plante bien sur.
Les gestionnaires d'erreur ne sont pas fait pour rien !
A+
 
Bonjour Galopin01,

j'ai essayé ta proposition et cela marche très bien.

Par contre si je met
dim Cible4 as range

cela plante ... zst ce une mauvaise syntaxe.
Sans quoi merci encore pour ton aide.
 
Bonjour,
bien sur que c'est mauvais ! Ce n'est pas un problème de syntaxe mais d'affectation de variable :
PivotItems attend une expression sous forme de chaine ("louis")... (traduisible comme un en tête de liste)

L'expression Cible4 = Range("a9") est une contraction (à mon avis équivoque) de :

Cible4 = Range("a9") .Value
aussi, si Range("a9") = "Jean"
et Cible4 = Range("a9")
Alors Cible4 = "Jean"

C'est pourquoi .PivotItems(Cible4)... ça marche !
Du moins tant que Range("a9") n'est pas vide.
C'est pourquoi il peut-être nécessaire d'installer un gestionnaire d'erreur...
Ok ?
 
- 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
7
Affichages
827
Réponses
9
Affichages
2 K
  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
840
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…