Como Cambiar el formato de una serie de datos de una gráfica en específico. (No gráfica Activa)

Aquí preguntando si alguien sería tan amable de ayudarme con el siguiente problema, que puede ser algo tonto pero no he logrado dar con la solución.

Tengo una gráfica a la cual le cambio el tamaño de ciertas series de datos por medio de macros, con el siguiente código

Set BA1 = ActiveChart.SeriesCollection("FluidD")

With BA1
With .Format.Line
.Weight = Range("m117")
End With
.MarkerStyle = xlMarkerStyleNone
.Smooth = True
End With

Lo cual hace bien, sin embargo hay ocasiones que al ejecutar la macro, marca error ya que el gráfico "No está Activo" por lo cual tengo que seleccionarle y después aplicar la macro. Cosa que no me gustaría que pasará, ya que otras personas utilizarán la macro. Además que tengo otro gráfico y si llegan a seleccionar este, cambiará las propiedades de esas series de datos o simplemente marcará el error al no encontrarlas (ya que tienen nombres en específico)
He intentado cambiar la primera línea con estas dos:

Charts("MyChart").Select

  ActiveChart.SeriesCollection(1).Format.Line.Visible = msoFalse

o con algo así:

ActiveSheet.ChartObjects("MyChart").Chart.SeriesCollection(1).Format.Line.Visible = msoFalse

o así

Dim cht As Chart
    Dim ser As Series
    Set cht = Worksheets("MySheet").ChartObjects("MyChart").Chart
    Set ser = cht.SeriesCollection(1)

Y hacer las respectivas modificaciones pero simplemente me marca error. ¿Alguna idea?
Les agradecería su apoyo, ya que apenas me voy iniciando en macros y no sé muy bien como manejarlo.

1 Respuesta

Respuesta
2

Prueba con lo siguiente:

Sub AjustarGrafica()
    For Each grafica In ActiveSheet.ChartObjects
        grafica.Select
        For Each wserie In ActiveChart.SeriesCollection
            If wserie.Name = "FluidD" Then
                Set BA1 = ActiveChart.SeriesCollection("FluidD")
                With BA1
                    With .Format.Line
                        .Weight = Range("m117")
                    End With
                    .MarkerStyle = xlMarkerStyleNone
                    .Smooth = True
                    Exit Sub
                End With
            End If
        Next
    Next
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas