Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3020 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Style TCD en VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Style TCD en VBA

n°2191448
Inataqi S
Love Psalm
Posté le 23-05-2013 à 03:28:06  profilanswer
 

Bonjour

 

J'ai créé un TCD avec un style personnalisé spécifiant notamment le style de "1ère rangée de colonne" et "2ème rangée de colonne". Cela donne:

 

http://i42.tinypic.com/2wftyxk.jpg

 

Le problème est qu'Excel ne permet pas de spécifier la taille de la police d'écriture des TCD directement  :fou: . Après chaque actualisation du tableau, il redonne la taille par défaut à toutes les polices du tableau.

 

J'ai trouvé ça pour spécifier une taille de police en VBA après chaque actualisation du TCD:

 

 ActiveSheet.PivotTables("TCD" ).PivotSelect "", _
    xlDataAndLabel, True
   
    With Selection.Font
   
        .Name = "Calibri"
        .Size = 9
        .ThemeFont = xlThemeFontNone
    End With

 

Cela fonctionne mais est appliqué à tout le tableau donc ma question est: comment en VBA sélectionner ce qui correspond dans les style Excel à "2ème rangée de colonnes" ? Sachant que sélectionner manuellement des plages spécifiques en VBA pour appliquer ne me va pas car mon tableau est sujet à souvent changer de taille en fonction des données sources.

 

:jap:


Message édité par Inataqi S le 23-05-2013 à 14:27:49
mood
Publicité
Posté le 23-05-2013 à 03:28:06  profilanswer
 

n°2191451
Inataqi S
Love Psalm
Posté le 23-05-2013 à 08:20:25  profilanswer
 

Bon j'ai finalement réussi, si ça peut aider quelqu'un :
 

Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TCD" )  
 
pt.PivotFields("Percent" ).DataRange.Select  
 
    With Selection.Font  
         
            .Name = "Calibri"
            .Size = 7
    End With


 
Donc on défini le TCD, on choisit les colonnes nommées dans les propriétés du TCD  et on parcourt la sélection pour changer la police.
 
Le problème est que si on a une colonne total automatique (donc dans mon cas total %), cela ne la sélectionne pas donc j'ai trouvé ça:
 

Dim lColFields As Long
 
With ActiveSheet.PivotTables("TCD" )
        lColFields = .ColumnFields.Count - 1
        If .RowGrand = False Or lColFields = 0 Then Exit Sub
        With .DataBodyRange
            .Resize(.Rows.Count - 1, lColFields).Offset(0, .Columns.Count - lColFields).Select
        End With
    End With
 
With Selection.Font
    .Name = "Calibri"
    .Size = 7
End With
 


 
Je suppose qu'il y a moyen de faire plus propre mais bon ça marche  :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Style TCD en VBA

 

Sujets relatifs
VBA extraction d'une chaine à partir d'une autre chaineProjet VBA : Simulation d'un jeux de poker
graphe a partir d'excel par VBAListe déroulante & Autofilter VBA
Code VBA pour coller un tableau excel dans corps de mail OutlookIdentification et codage VBA
Vba import csv to xls[Excel/VBA] MàJ Données Graphique
[VBA] comparaison de 2 fichiers excel[VBA-Excel] selection d'une plage variable
Plus de sujets relatifs à : Style TCD en VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR