Mise en forme barre d'erreur par macro
Bonjour à tous,
J'ai un petit graphique qui se crée automatiquement par macro et je voudrais, dans le même temps, intégré une barre de seuil sur l'axe Y, à une valeur donnée.
Ca, ça tourne, en partie grâce au infos trouvées sur le forum.
J'ai en effet créé cette barre de seuil en insérant une nouvelle série à laquelle j'ai ajouté une barre d'erreur sur la largeur du graph.
Le petit problème que j'ai réside dans la mise en forme de cette barre d'erreur. En effet, dans ma macro (copiée en directe pourtant) la mise en forme ne se fait que sur la barre d'erreur verticale, et non pas horizontale.
Voici le code en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Sub Barre_erreur()
ActiveSheet.ChartObjects("Graphique BFu").Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(8).Values = "=Données!$I$1"
ActiveChart.SeriesCollection(8).Select
ActiveChart.SeriesCollection(8).ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SeriesCollection(8).Select
ActiveChart.SeriesCollection(8).HasErrorBars = True
ActiveChart.SeriesCollection(8).ErrorBars.Select
ActiveChart.SeriesCollection(8).ErrorBar Direction:=xlY, Include:= _
xlMinusValues, Type:=xlFixedValue, Amount:=1
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
End With
With Selection.Format.Line
.Visible = msoTrue
.Weight = 1.5
End With
ActiveChart.SeriesCollection(8).ErrorBars.Select
ActiveChart.SeriesCollection(8).ErrorBars.EndStyle = xlNoCap
ActiveChart.SeriesCollection(8).ErrorBar Direction:=xlX, Include:= _
xlPlusValues, Type:=xlFixedValue, Amount:=(ThisWorkbook.ActiveSheet.Range("I2").Value)
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
End Sub |
La barre d'erreur reste invariablement noire et fine.
Merci.
Citizen
Utiliser la propriété .weight
Bonjour,
Utilisez la propriété Weight de Line pour l'épaisseur du trait
Code:
1 2 3 4 5 6 7 8 9 10
| ActiveChart.SeriesCollection(8).ErrorBar Direction:=xlX, Include:= _
xlPlusValues, Type:=xlFixedValue, Amount:=(ThisWorkbook.ActiveSheet.Range("I2").Value)
With Selection.Format.Line
.Visible = msoTrue
.Weight = 3 ' Epaisseur 3 points par exemple
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With |
Astuce : En ce qui concerne les 3 paramètres de la fonction RGB pour la couleur de la ligne, il vous suffit de sélectionner sur une cellule la couleur de remplissage souhaitée.
Puis d'aller voir dans le menu Accueil, dans la zone Police, choisir l'icone Couleur de remplissage, avec la liste déroulante en bas de la boite de dialogue, sélectionner Autres couleurs.
Les 3 paramètres sont indiqués dans l'onglet Personnalisées. Il vous suffit de reporter ces 3 valeurs dans votre code.
Cordialement.
Créez une macro et modifiez manuellement les propriétés de la barre
Astuce : Lorsque vous ne voyez pas pourquoi cela ne marche pas, créez une nouvelle macro et modifiez manuellement la barre qui vous pose problème. Une fois corrigée (épaisseur, couleur), fermez la macro et allez voir le résultat avec l'éditeur VBA. Votre macro a sans doute généré un nouveau module.
La macro a généré les codes qui vous permettront de voir l'objet qui a été modifié. Il vous suffira de les transposer dans votre code.
Cordialement.
Quel est l'objet formaté dans votre nouvelle macro ?
Bonjour,
Il faut créer une nouvelle macro qui agit sur l'objet ligne à modifier dans votre graphique. De cette façon, vous verrez le nom de l'objet ligne qui doit être sélectionné dans votre code d'origine.
Pouvez-vous ensuite mettre en ligne le code de votre nouvelle macro où apparaît la sélection de la ligne pour comparer avec le code d'origine ?
Cordialement.
Utiliser les propriétés .Weight et .Color de ErrorBar.Border
Il faut utiliser les propriétés Weight et Color de l'objet Border de la barre d'erreur. Attention, la propriété Weight ne supporte que 4 tailles préparamétrées xlHairline, xlThin, xlMedium, xlThick.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Sub Barre_erreur()
' Barre_erreur Macro
ActiveSheet.ChartObjects("Graphique BFu").Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(8).Values = "=Données!$I$1"
ActiveChart.SeriesCollection(8).Select
ActiveChart.SeriesCollection(8).ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SeriesCollection(8).Select
ActiveChart.SeriesCollection(8).HasErrorBars = True
ActiveChart.SeriesCollection(8).ErrorBars.Select
ActiveChart.SeriesCollection(8).ErrorBar Direction:=xlY, Include:=xlMinusValues, Type:=xlFixedValue, Amount:=1
With Selection.Border
.Weight = xlThick ' 4 valeurs possibles xlHairline, xlThin, xlMedium, xlThick
.Color = RGB(179, 162, 199)
End With
ActiveChart.SeriesCollection(8).ErrorBars.Select
ActiveChart.SeriesCollection(8).ErrorBars.EndStyle = xlNoCap
ActiveChart.SeriesCollection(8).ErrorBar Direction:=xlX, Include:= _
xlPlusValues, Type:=xlFixedValue, Amount:=(ThisWorkbook.ActiveSheet.Range("I2").Value)
With Selection.Border
.Weight = xlThick ' 4 valeurs possibles xlHairline, xlThin, xlMedium, xlThick
.Color = RGB(255, 0, 0)
End With
End Sub |
Cordialement.