Tengo varias series de datos en un gráfico y quiero que cada una de las 55 líneas del gráfico tenga un grosor diferente según mi elección. He visto la siguiente macro para ajustar el grosor de todas las líneas de una sola vez.
Sub SetWeights()
Dim srs As Series
For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
srs.Format.Line.Weight = 0.75
Next
End Sub
¿Hay alguna forma (macro) para que cada línea tenga un grosor diferente según lo definido en una de las columnas de la hoja de cálculo de Excel?
¿Existe alguna forma similar de cambiar el color de la línea y el tipo de marcador de una sola vez (no es necesario un marcador diferente para cada línea)?
Respuesta1
Sí, puedes formatear el grosor y el color de la línea.
Este código debe formatear la serie 2:
Sub SetWeights()
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(107, 197, 135)
.Weight = 1
End With
End Sub
Puede modificar el código para recorrer cada serie y cada vez leer un color y peso diferentes.
Puede cambiar el tipo de marcador agregando una línea como:
.MarkerStyle = -4142
Las opciones para el estilo del marcador se enumeran aquí: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/series-markerstyle-property-excel
Respuesta2
Bien, la siguiente macro (obtenida dehttps://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop) responde a mi pregunta original.
Sub SetWeights()
Dim Srs As Series
Dim myWeight As Range
Dim £w As Range
Dim j As Long
Set myWeight = Range("Weights")
j = 1
With ActiveSheet
For Each £w In myWeight
If j > ActiveChart.SeriesCollection.Count Then Exit Sub
ActiveChart.SeriesCollection(j).Format.Line.Weight = £w
j = j + 1
Next £w
End With
End Sub
...y soy capaz de trazar dicho gráfico: Capaz de dibujar esto
¿Alguien puede proporcionar alguna modificación a esta macro para poder tener dicho gráfico?
¡Gracias!