Mejorar el rendimiento de macro de crear gráfico
Necesito mejorar el rendimiento de macro de crear gráfico, todos los datos de la tabla son a través de fórmulas y demora 27 segundos.
macro
Sub graficandoSeries() 'x Elsamatilde Range("J11").Select ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmooth).Select Application.CutCopyMode = False 'se establece cuál será la ultima serie x = 1 If Range("B3") <> "" Then x = Range("A3").End(xlToRight).Column 'se agregan las series al gráfico For i = 2 To x 'se arman los rangos para asignarlos a cada serie If Cells(4, i) <> "" Then ini = 4 Else ini = Cells(3, i).End(xlDown).Row End If 'se establece la última fila de datos según col i y = Cells(ini, i).End(xlDown).Row rgoy = Range(Cells(ini, i), Cells(y, i)).Address ' $B$4:$B$20 rgox = Range(Cells(ini, 1), Cells(y, 1)).Address ' $A$4:$A$20 'se crea la serie ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(i - 1).Name = "=Blad1!" & Cells(3, i).Address ActiveChart.FullSeriesCollection(i - 1).XValues = "=Blad1!" & rgoy '$B$4:$B$20 ActiveChart.FullSeriesCollection(i - 1).Values = "=Blad1!" & rgox '$A$4:$A$20 'las sgtes series se establecen en eje secundario If i > 2 Then ActiveChart.FullSeriesCollection(i - 1).AxisGroup = 2 Next i 'ubicación de leyeda y configuración de ejes ActiveChart.SetElement (msoElementLegendBottom) ActiveChart.SetElement (msoElementSecondaryValueAxisNone) Range("J7").Select End Sub
2 Respuestas
Respuesta de Dante Amor
3
Respuesta de Elsa Matilde
1