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

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
 

pierrejean

XLDnaute Barbatruc
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
 
G

Guest

Guest
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:)
 

libellule85

XLDnaute Accro
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

  • Red Dev Champ dans TCD.xls
    90 KB · Affichages: 43
Dernière édition:

pierrejean

XLDnaute Barbatruc
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
 

libellule85

XLDnaute Accro
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:
G

Guest

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 966
Membres
101 852
dernier inscrit
dthi16088