Gráfico de Excel: macro para grosor de línea variable definido por el usuario

Gráfico de Excel: macro para grosor de línea variable definido por el usuario

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
  1. ¿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?

  2. ¿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?

Nuevo gráfico esperado

¡Gracias!

información relacionada