Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

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

libellule85

XLDnaute Accro
Bonjour le forum,

J'aurais une nouvelle fois besoin de vos lumières. En effet, j'ai créé un tableau croisé dynamique et au lieu d'aller à chaque fois dans le ruban pour réduire ou développer les champs je désire mettre ces commandes dans un même label :

(Les champs à développer/réduire se situent de A3 à A400)

- développer le champ entièrement
Code:
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail = True
- réduire le champ entièrement
Code:
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
    .ShowDetail = False

Quelqu'un pourrait me dire comment faire,
Vous en remerciant par avance
 
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

Bonjour libellule

Peut-être comme ceci

Code:
if ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail  then
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail = False
else
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail = True
end if
 
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

Bonjour,

A supposer qu'un label nommé "Label 1" (son nom interne) soit posé sur la feuille active:
Code:
Sub TCDShowDetail()
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur")
        .ShowDetail = Not .ShowDetail
        .Parent.Shapes("Label 1").OLEFormat.Object.Caption = Array("Afficher détails", "Masquer détails")(Abs(.ShowDetail))
    End With
End Sub

A+

[Edit] Bonjour Pierre-Jean🙂
 
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

Re,

Je viens d'essayer vos réponses, et à chaque fois j'ai une erreur "1004 : Erreur définie par l'application ou par l'objet" :

@ Pierre-Jean cela bug sur
Code:
If ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
         .ShowDetail Then

@ Hasco cela bug sur
Code:
.ShowDetail = Not .ShowDetail


NB : ci-jojnt fichier
 

Pièces jointes

Dernière édition:
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

Re

J'ai l'impression que tu nous a enduit avec de l'erreur !!
Je ne trouve pas de ShowDetail dans les propriétés de PivotTable
Teste avec l'enregistreur de macro la syntaxe d'affichage des details
 
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

re pierrejean,

trouves ci-dessous ce que donne l'enregistrement de la macro pour réduire les champs :

Code:
Sub Macro3()
'
' Macro3 Macro
'

'
    Range("A3").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail = False
End Sub

et l'enregistrement de la macro pour développer les champs :

Code:
Sub Macro4()
'
' Macro4 Macro
'

'
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Fournisseur") _
        .ShowDetail = True
End Sub
 
Dernière édition:
Re : Créer un seul label pour les 2 actions : Développer/Réduire champs dans TCD

Bonjour,

Je ne comprends pas cette résistance à mettre un fichier joint dès le départ, cela nous ferait perdre moins de temps et permettrait d'avoir tous les éléments pour apporter une réponse adéquate plus rapidement.

Voir fichier joint
 
- 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
Retour