Tableau croise macro

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

N

nic81

Guest
Bonjour

je fais plusieurs TBC tous les mois pour mon travail. J'ai trouvé une macro qui permet de modifier les données des colonnes mais les lignes disparaissent.
Est ce qu'il y aurait une possibilité de conserver les lignes.
Petit exemple dans le fichier joint

Je vous remercie de votre aide

Bonne journée
 

Pièces jointes

Re : Tableau croise macro

Re,

regarde les 2 codes ci-dessous si ils peuvent t'aider :

le premier boucle sur tous les champs visibles du TCD,si il est trouvé, il est masqué.
Code:
Dim pf As PivotField
For Each pf In Sheets("base").PivotTables(1).VisibleFields
    If pf.Name = "AC" Then pf.Orientation = xlHidden
Next pf

le 2ème code teste si un champ est en colonne, si c'est le cas positionne un autre champ en cvolonne.
Code:
With Sheets("base").PivotTables(1)
    If .PivotFields("AC").Orientation = xlColumnField Then _
        .PivotFields(Range("B1").Value).Orientation = xlColumnField
End With

bien sur dans ces codes tu peux remplacer le nom des champs :
Code:
 .PivotFields("AC").
par :
Code:
 .PivotFields(Range("B1").Value).
si la cellule en question contient bien le nom du champ à utiliser...

@+
 
Re : Tableau croise macro

Pierrot


merci pour tes codes, mais je n'ai pas su les utiliser.

j'ai contourné le problème de cette façon

Sub macroaspfmi()

Sheets("couv pfmi").Select

With Sheets("couv pfmi").PivotTables(1)
.PivotFields(Range("d7").Value).Orientation = xlHidden
End With

Sheets("couv pfmi").PivotTables(1).PivotFields("cible pfmi").Orientation = xlRowField

Sheets("couv pfmi").PivotTables(1).PivotFields("année SCOLAIRE PFMI").Orientation = xlColumnField

With Sheets("couv pfmi").PivotTables(1)
.PivotFields(Range("e6").Value).Orientation = xlColumnField
.PivotFields(Range("e6").Value).Orientation = xlHidden
End With

Range("D7").Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"cible pfmi")
.Orientation = xlPageField
.Position = 1
End With
End Sub


Merci pour tout

Bon WE
 
Re : Tableau croise macro

Re Nicolle,

Petite remarque dans ton code, comme dit à 9h46, la ligne en bleu ne devrait pas être utile :

Code:
With Sheets("couv pfmi").PivotTables(1)
[B][COLOR="Blue"].PivotFields(Range("e6").Value).Orientation = xlColumnField[/COLOR][/B]
.PivotFields(Range("e6").Value).Orientation = xlHidden
End With
 
- 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
12
Affichages
353
Réponses
18
Affichages
603
Réponses
2
Affichages
237
Retour