Partager via

Graphiques, police caractères axes

Anonyme
2021-08-05T18:51:12+00:00

Bonjour,

Je souhaite changer la police de caractères sur l'axe des abscisses d'un graphique nommé "Pyramide11".
Dans ce but, manuellement et avec l'aide de l'enregistreur de macro, j'ai obtenu :

Sub Macro2()

ActiveSheet.ChartObjects("Pyramide11").Activate
ActiveSheet.ChartObjects("Pyramide11").Activate

ActiveChart.Axes(xlValue).Select
With Selection.Format.TextFrame2.TextRange.Font
.BaselineOffset = 0
.Name = "Arial"
End With

End Sub

Malheureusement, lorsque je relance en automatique cette macro j'ai l'avertissement suivant :

La méthode ‘TextFrame2’ de l’objet ‘ChartFormat’ a échouée

J'ai beau tourner dans tous les sens, je ne vois pas ce qui cloche dans l'exécution automatique.

Par ailleurs, je ne comprends pas la raison pour laquelle la ligne :

ActiveSheet.ChartObjects("Pyramide11").Activate

est enregistrée 2 fois

.

Merci pour votre aide et cordialement.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
{count} votes
Réponse acceptée par l’auteur de la question
  1. DanielCo 107.7K Points de réputation
    2021-08-08T08:16:27+00:00

    Bonjour,

    Là, l'enregistreur a des excuses. A force de chercher, j'ai trouvé ceci :

    "Microsoft forget to add the Cap and Join properties of a line to the Excel VBA object model, so it's simply impossible to set the Join type to Miter in VBA. Sorry!"

    En clair, voilà : ce n'est pas possible (oubli). Voici l'adresse de la page en question :

    https://social.msdn.microsoft.com/Forums/office/en-US/f5a91446-e8a5-4e5b-85fd-c07332f6e026/bar-in-a-bar-graph-with-squared-border-line?forum=exceldev

    Daniel

    2 personnes ont trouvé cette réponse utile.
    0 commentaires Aucun commentaire

4 réponses supplémentaires

  1. DanielCo 107.7K Points de réputation
    2021-08-09T08:28:09+00:00

    Bonjour,

    Personne ne rivalise avec Andy Pope, le pape des graphiques ;-)

    Bonne journée.

    Daniel

    3 personnes ont trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2021-08-08T20:40:25+00:00

    Bonsoir Daniel,

    Merci pour tes recherches approfondi. Je constate que "l'oubli" a été signalé en Août 2011 (voire avant) et que 10 années plus tard la maintenance de VBA par MS n'a apparemment rien fait ! Durant mes propres recherches je n'avais pas trouvé la page que tu m'indiques.

    Toujours est-il qu'Andy propose un palliatif aux carences de MS qui me convient. J'ai donc écrit la ligne suivante fortement inspirée par Andy :

    ActiveSheet _

     .ChartObjects("Pyramide11") \_ 
    
     .Chart \_ 
    
     .SeriesCollection(3) \_ 
    
     .Format \_ 
    
     .ThreeD \_ 
    
     .BevelTopInset = 0.5 
    

    Merci pour tes recherches et ton aide et bien cordialement

    Jean

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2021-08-06T07:02:56+00:00

    Bonjour,

    Des fois, l'enregistreur de macros s'emmêle les crayons. La syntaxe est :

    ActiveSheet.ChartObjects("Pyramide11").Chart.Axes(xlValue).TickLabels.Font.Name = "Arial"

    Remplace toutes les lignes par celle-ci.

    Cordialement.

    Daniel

    PS. Pour la ligne en double, tu as sans doute dû cliquer deux fois dans le graphique.

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  4. Anonyme
    2021-08-07T19:10:55+00:00

    Merci Daniel pour ta réponse prompte et qui fonctionne parfaitement.

    Tu m'as indiqué que l'enregistreur de macros s'emmêle parfois les crayons. Aussi je me permets de te soumettre une seconde question sur les macros mal générées par cet enregistreur.

    Mon graphique "Pyramide11" est de type "Barres groupées" à l'horizontale. Dans le menu déroulant Excel lorsque je choisi «Mise en forme des données» >> Option des séries >> Bordure >> Type de joint >> D’angle.

    Avec l’enregistreur de macros cela donne :

    Sub Macro5()

        ActiveSheet.ChartObjects("Pyramide11").Activate

        ActiveChart.FullSeriesCollection(3).Select

    End Sub

    Puis, plus rien d’autre!

    J’ai beau chercher intensément dans l’explorateur d’objets, je n’ai rien vu qui puisse être utilisé pour rendre les d’extrémités de barres «d’angle» c’est-à-dire plate, non arrondies et non biseautées. Par défaut les extrémités sont arrondies ce qui n’est pas forcément heureux dans un graphique rendant compte de valeurs numériques.

    Pour le moment la seule méthode que j’ai trouvée est une modification manuelle des graphiques ce qui est la négation même de l’utilisation d’une macro.

    Encore merci pour ton aide et bien cordialement.

    Jean

    0 commentaires Aucun commentaire