Gráfico de Excel: contar la serie y luego agregar una etiqueta de datos al último punto

Gráfico de Excel: contar la serie y luego agregar una etiqueta de datos al último punto

Logré crear una macro que encuentra el último punto de la primera serie en un gráfico y agrega y formatea una etiqueta de datos. Ahora me gustaría hacer que cuente la serie, que puede cambiar en número, en el gráfico e iterar a través de cada una haciendo lo que hizo con la serie 1.

Fracasa estrepitosamente. He comentado las partes que probé pero fallé.

No estoy seguro de cómo puedo entender lo que he hecho.

Cualquier ayuda se agradece.

Miguel.

Dim MyChart As Chart
Dim ChartPoints As Points
Dim ChartDataLables As DataLabel
'Dim NumberOfSeries As Series

Set MyChart = ActiveSheet.ChartObjects("Chart 1").Chart

'Set NumberOfSeries = MyChart.SeriesCollection.Count

Set ChartPoints = MyChart.SeriesCollection(1).Points
ChartPoints(ChartPoints.Count).ApplyDataLabels
Set ChartDataLables = ChartPoints(ChartPoints.Count).DataLabel

 'For Each NumberOfSeries In MyChart
 With MyChart
     With ChartDataLables
    .Position = xlLabelPositionRight
    .HorizontalAlignment = xlCenter
    .Font.Size = 8
    .NumberFormat = "0.00"
    .ShowSeriesName = True
    .Font.Name = "Arial Narrow"
     End With
 End With
  'Next NumberOfSeries
 End Sub

Mi macro original fue escrita con la ayuda de Google/Foros y prueba y error.

Respuesta1

No es necesario VBA (a menos que te guste VBA). Simplemente cree una serie auxiliar que evalúe si hay otro valor (yo uso una fórmula de compensación). Si no hay ningún valor "siguiente" en su serie de datos, devuelva el valor actual/último. De lo contrario, devuelva un #N/A. Luego agregue esta serie de ayuda a su gráfico y etiquétela o déle formato a su gusto. El gráfico ignora todos los N/A y solo traza el punto de datos final. Esto también se puede utilizar para encontrar otros valores clave (por ejemplo, primero, alto, bajo, etc...).

ingrese la descripción de la imagen aquí

Respuesta2

Recorra cada serie del gráfico:

Option Explicit

Public Sub LoopThroughSeries()
    Dim myChart As ChartObject
    Dim mySeries As Series

    With myChart
        For Each mySeries In myChart.Chart.SeriesCollection
            'do stuff
        Next
    End With

End Sub

información relacionada