Gérer étendue barre d'erreur horizontale

Holeshotman

XLDnaute Junior
Bonjour à tous,

Je fais appel à vous car je bloque sur un sujet, malgré mes recherches et essais ...

Je cherche à réaliser une barre d'erreur horizontale sur un graphique en VBA qui soit de même longueur que mon graphique. Le problème étant que les abscisses de mon graphique sont variables et ne commencent pas nécessairement pas le point d'abscisse 0.

J'ai réussi à coder ce genre de chose en m'inspirant de programmes existants :

Code:
For Each MyChart In Workbooks("GRAPHIQUES").Sheets("GRAPHIQUES").ChartObjects

MyChart.Chart.SeriesCollection.NewSeries
MyChart.Chart.SeriesCollection(2).Name = "Valeur supérieure"
MyChart.Chart.SeriesCollection(2).Values = UserForm1.TextBox2.Value
MyChart.Chart.SeriesCollection(2).HasErrorBars = True
MyChart.Activate
MyChart.Chart.SeriesCollection(2).ErrorBars.Select
MyChart.Chart.SeriesCollection(2).ErrorBar Direction:=xlX, Include:= _
xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, Amount:=80

MyChart.Chart.SeriesCollection(2).ErrorBar Direction:=xlY, Include:= _
xlErrorBarIncludeNone, Type:=xlFixedValue

Next MyChart

Ce qui me donne la chose suivante :

Graph.JPG

Le problème est que la barre d'erreur débute en X=0, ce qui augmente l'échelle des abscisses et rend le graphique inexploitable ... (avant de tracer la barre d'erreur, l'étendue de l'axe des abscisses est approximativement le suivant : [60:70]).

Dans le code, "Amount:= 80" permet de définir la valeur finale en X de la barre d'erreur, mais je ne sais pas s'il existe une instruction permettant de définir l'abscisse correspondant à l'origine de la barre d'erreur (commencer en X=60 serait suffisant).

Si quelqu'un connait la réponse, je suis preneur ! :D
Merci par avance.
 

Pièces jointes

  • Graph.JPG
    Graph.JPG
    33.4 KB · Affichages: 103
  • Graph.JPG
    Graph.JPG
    33.4 KB · Affichages: 113

Efgé

XLDnaute Barbatruc
Re : Gérer étendue barre d'erreur horizontale

Bonjour Holeshotman

Juste une idée:
Je pense que tu utilises un graph "Ligne". Si tu prends un nuage de points, tu pourras fixer la valeur des coordonées X et Y de ta série (juste un point si j'ai bien compris).
L'étendue de ta barre d'erreur sera égale au MAX - MIN de ton axe X.

Cordialement
 

Holeshotman

XLDnaute Junior
Re : Gérer étendue barre d'erreur horizontale

Bonjour Efgé,

Non les graphiques créés sont bel et bien des nuages de points, c'est pour cela que je ne comprends pas ...

Code:
Sheets("GRAPH").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
Set Choix = ActiveWorkbook.Sheets("DATA").Range("B2").CurrentRegion

With ActiveChart
.SetSourceData Source:=Choix, PlotBy:=xlColumns
.HasTitle = True
.PlotArea.Interior.Color = RGB(192, 192, 192)
.ChartTitle.Characters.Text = nom
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Déplacement (mm)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Effort (kN)"
End With

Je reste persuadé qu'il est possible de commencer par une autre valeur que zéro. Ca m'agasse :D

Merci quand même pour votre proposition de solution !
Si un membre du forum a une autre idée .. :cool:
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87