Mise en forme graphique

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

mbouquet

XLDnaute Nouveau
Bonjour,

je suis actuellement entrain de gérer des graphiques sous vba et j'ai quelques problèmes pour gérer la mise en forme.

je suis entrain de vivre le "dépucelage" du code orienté objet et j'ai quelques difficultés à utiliser les classes/méthodes misent à disposition.

Voici quelques lignes de codes expliquant où j'en suis:

Dim ch1 As Chart, PlageGraphique As Range,Axe As Axis

Set PlageGraphique = Range("B5:H26")

Set ch1 = Worksheets("Indicators").ChartObjects.Add(PlageGraphique.Left, PlageGraphique.top, PlageGraphique.width, PlageGraphique.height).Chart

With ch1
.ChartType = xlLine
End With

Set Axe = ch1.Axes(xlCategory)
With Axe
.CrossesAt = 1
.TickLabelSpacing = 30
.TickMarkSpacing = 5
.AxisBetweenCategories = True
.ReversePlotOrder = False
End With

j'ai alors un message d'erreur indiquant qu'il est impossible de définir les propriétés CrossesAt (et les suivantes) de la classe axis.

Le but ce bout de macro étant de modifier les échelles (espacement, min, max etc...).

Je ne comprends pas ce message d'erreur.

Quelqu'un aurait il une idée ou une explication pour m'indiquer mon erreur?
 
Re : Mise en forme graphique

Bonjour,

essaye peut être ainsi, en définissant la source...

Code:
Option Explicit
Sub test()
Dim ch1 As Chart, PlageGraphique As Range, Axe As Axis
Set PlageGraphique = Range("A1:D6")
Set ch1 = ActiveSheet.ChartObjects.Add(PlageGraphique.Left, PlageGraphique.Top, PlageGraphique.Width, PlageGraphique.Height).Chart
ch1.SetSourceData Source:=PlageGraphique, PlotBy:=xlRows
With ch1
    .ChartType = xlLine
    Set Axe = .Axes(xlCategory)
    With Axe
        .CrossesAt = 1
        .TickLabelSpacing = 30
        .TickMarkSpacing = 5
        .AxisBetweenCategories = True
        .ReversePlotOrder = False
    End With
End With
End Sub

Après, comme je ne connais pas le type de donnée traité...

bon après midi
@+
 
- 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
Retour