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

G

groota

Guest
Bonjour,
Je suis entrain de faire la mise en page d'un tableau croisé dynamique.
Je voudrais éviter de faire A5 = rouge (comme j'avais fait auparavant) car comme le tableau peut changer de taille cela peut entrainer des erreurs, mais plutôt faire : si la cellule est un champs de colonne, la colorier en rouge.
Mais je ne sais pas comment faire celà ... Quelqu'un pourrait-il m'aider ?

Merci 🙂
 
Re : Macro Excel TCD

Bonjour,

Bonjour Job 🙂

Effectivement, ça se voit à l'œil nu, mais comme il (elle) voudrait les colorier...

@ groota

essaie ce code (à adapter avec ton nom de tableau, et de champ..)

Code:
Dim Pvt As PivotItem
For Each Pvt In ActiveSheet.PivotTables("nom_du_TCD").PivotFields("nom_du_champ").PivotItems
    Pvt.LabelRange.Interior.ColorIndex = 6
Next Pvt

Bonne journée
 
Re : Macro Excel TCD

Re-,

avec ce code, tu mets en jaune les totaux, et en rouge le total général..

Noms à adapter...

Code:
Sub color_item()
Dim Pvt1 As PivotItem, Pvt2 As PivotItem
Dim Lig As Integer, Col As Byte
On Error Resume Next
For Each Pvt1 In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("nb").PivotItems
    If Pvt1.Visible = True Then
        Col = Pvt1.LabelRange.Column
        Pvt1.LabelRange.Offset(Pvt1.DataRange.Count + 1, 0).Interior.ColorIndex = 6
    End If
Next Pvt1
For Each Pvt2 In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("date").PivotItems
    If Pvt2.Visible = True Then
        Lig = Pvt2.LabelRange.Row
        Pvt2.LabelRange.Offset(0, Pvt2.DataRange.Count + 1).Interior.ColorIndex = 6
    End If
Next Pvt2
Cells(Lig + 1, Col + 1).Interior.ColorIndex = 3
End Sub
 
Re : Macro Excel TCD

Bonjour,

Je ne parviens pas à avoir les totaux en jaune et le total général en rouge avec le code. Vous avez trouvez ces formules comment ?
Y a t-il un site qui les répertorie ?

Merci
 
Re : Macro Excel TCD

Bonjour,

pour le moment, je travaillais en aveugle...

Si tu veux qu'on progresse dans ton projet, il serait préférable que tu joignes un ersatz de fichier, avec des données bidons, mais avec la structure exacte..

Le plus simple, tu prends ton fichier réel, tu en fais une copie, tu gardes une vingtaine ou trentaine de lignes, tu remplaces tous les e par une autre lettre, tous les p par une autre, par exemple, autant de lettres que tu veux, ainsi il sera plus aisé de t'aider.

Ne garde que l'onglet qui nous intéresse....

A te relire
 
Re : Macro Excel TCD

Regarde la pièce jointe Ersatz2.xls

Je ne sais pas si la macro va avec, donc dans le doute, je la recopie :

Code:
Sub Capacité()
'
' Capacité Macro
' Macro enregistrée le 16/06/2009 par Moi
'
' Touche de raccourci du clavier: Ctrl+Maj+C

'Préparation du TCD
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!A:K").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
Array("Capacité"), ColumnFields:="Lieux", PageFields:= _
Array("Année", "Mois", "Jour", "Heure")
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Papiers"). _
Orientation = xlDataField
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect "", _
xlDataAndLabel, True
'Fin de la préparation du TCD

'Mise en page

'Masquer la ligne et la colonne vides :
    Range("A11").Select
    Selection.Delete

Range("A1,A2,A3,A4,A6,A7,B6").Select
Selection.Interior.ColorIndex = 2
Selection.Font.FontStyle = "Gras"
Selection.Font.Size = 9

Range("A6,A7").Select
Selection.HorizontalAlignment = xlCenter
 

'Mettre en violet les 2 lignes  
Range("B7,C7,D7,E7,F7,A11,B11,C11,D11,E11,F11").Select
Selection.Interior.ColorIndex = 24
Selection.Font.ColorIndex = 55
Selection.Font.FontStyle = "Gras"
Selection.HorizontalAlignment = xlCenter

Range("F8:F10").Select
Selection.Font.FontStyle = "Gras"
Selection.HorizontalAlignment = xlCenter

Range("A8:E10").Select
Selection.HorizontalAlignment = xlCenter

Range("A8:A10,F8:F10,B8:E10").Select
Selection.Interior.ColorIndex = 2


Range("A11,B11,C11,D11,E11,F11").Select
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThick
    .ColorIndex = 55
End With

'Mettre "Année", "Mois", "Jour" et "Heure" dans l'ordre
    Range("A4").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Année")
        .Orientation = xlPageField
        .Position = 4
    End With
    Range("A4").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
        .Orientation = xlPageField
        .Position = 3
    End With
    Range("A4").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Jour")
        .Orientation = xlPageField
        .Position = 2
    End With
    
'Créer le graphique
Charts.Add
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B10")
    ActiveChart.Location Where:=xlLocationAsNewSheet
    ActiveChart.PlotArea.Select
    Selection.Border.ColorIndex = 16
    With Selection.Interior
        .ColorIndex = 2
        .PatternColorIndex = 1
    End With
    ActiveChart.ChartType = xlColumnClustered
    On Error Resume Next
    ActiveChart.SeriesCollection(2).Interior.ColorIndex = 24
    ActiveChart.SeriesCollection(3).Interior.ColorIndex = 20
    ActiveChart.SeriesCollection(4).Interior.ColorIndex = 37
End Sub

Voilà 🙂

ps : J'ai deux tableaux et deux graphiques dans ma macro normalement. Là j'en ai mis qu'un pour ne pas compliquer ... 😛
 
Dernière modification par un modérateur:
Re : Macro Excel TCD

Re-,

quand je vois ce que fait ta macro, je ne pourrai que te conseiller de regarder les types de TCD qu'offre Excel....

Clique dans le TCD, n'importe où...

Dans la barre d'outils "Tableau Croisé Dynamique", clique sur le 2 ème bouton (qui représente un tableau avec un éclair....)

Et essaie..

Une fois que tu as trouvé ton bonheur, remets l'enregistreur de macro en chauffe....

Si tu ne le trouves pas, tu voudrais que j'insère mon code dans le tien?

J'attends ta réponse avant de commencer à travailler...

Bon courage
 
Re : Macro Excel TCD

Bin justement au début j'avais fait ça ... j'avais utilisé l'enregistreur et pris les machins de excel, mais je trouvais pas ça super le résultat ...


"quand je vois ce que fait ta macro, je ne pourrai que te conseiller de regarder les types de TCD qu'offre Excel...."
---> ça veut dire que tu trouves ça moche mon truc ?
 
- 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
16
Affichages
1 K
Réponses
7
Affichages
852
Réponses
3
Affichages
451
Réponses
1
Affichages
784
Compte Supprimé 979
C
Retour