Tenho várias séries de dados em um gráfico e quero que cada uma das 55 linhas do gráfico tenha espessuras diferentes com base na minha escolha. Eu vi a macro a seguir para ajustar a espessura de todas as linhas de uma só 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
Existe alguma maneira (macro) de cada linha ter espessura diferente conforme definida em uma das colunas da planilha do Excel?
Existe alguma maneira semelhante de alterar a cor da linha e o tipo de marcador de uma só vez (sem necessidade de marcador diferente para cada linha)?
Responder1
Sim, você pode formatar a espessura e a cor da linha.
Este código deve formatar a série 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
Você pode modificar o código para percorrer cada série e cada vez ler uma cor e um peso diferentes.
Você pode alterar o tipo de marcador adicionando uma linha como:
.MarkerStyle = -4142
As opções de estilo de marcador estão listadas aqui: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/series-markerstyle-property-excel
Responder2
Ok, a seguinte macro (obtida emhttps://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop) responde à minha pergunta 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
... e sou capaz de traçar esse gráfico: Capaz de desenhar isso
Alguém pode fornecer alguma modificação nesta macro para que eu possa ter esse gráfico?
Obrigado!