Jump to content

autoajustar gráfico en excel con VBA


Recommended Posts

Muy buenas tardes a todos, mi nombre es Gonzalo (LordAntrax) y deseo hacerles una consulta:

Estoy creando gráficos con VBA en Excel. El tema es que todo corre perfecto, pero al momento de autoajustar el tamaño del mismo, no me deja hacerlo. El código es el siguiente:

'-- le indico la última celda con datos

fin = Cells(Worksheets("Hoja4").Range("B" & Rows.Count).End(xlUp).Row, 1).Row

'--Código de contrucción de gráfico

rngtit = "A2:A" & fin '-- Rango de titulos

rngdat = "B1:B" & fin '-- Rango de Datos

'--Gráfico

Range("A6:B" & fila).Select

Charts.Add

ActiveChart.ChartType = xl3DPie

ActiveChart.SetSourceData Source:=Sheets("Hoja4").Range("A6:B" & fila), PlotBy:=xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja4"

'-- Acá supuestamente, guardo los valores para el minimumScale y MaximumScale

max = Application.WorksheetFunction.max(Range("B6:B" & fin))

min = Application.WorksheetFunction.min(Range("B6:B" & fin))

unit = WorksheetFunction.Average(Range("B6:B" & fin))

valores = Range("B6:B" & fin).CountLarge

'--como tengo 2 gráficos, recorro los activos para su autoajuste

For Each ChartObjects In ActiveSheet.ChartObjects

With ActiveChart.Axes(xlValue)

.MinimumScale = min * 0.95

.MaximumScale = max * 1.05

.MinorUnit = unit / valores

.MajorUnit = unit / valores

End With

Next

Al llegar a la sentencia .MinimumScale = Range("B6"), me da un error de que el objeto ya no es válido.

Alguien me podría dar una mano con esto? :suspicion:

Desde ya, muchas gracias.

Saludos a todos

Link to comment
Share on other sites

Hola,

por favor, prueba así:

 For Each [COLOR=#0000ff]ChartObjects[/COLOR] In ActiveSheet.ChartObjects
 With [COLOR=#ff0000]ChartObjects.Chart.[/COLOR]Axes(xlValue)
 .MinimumScale = min * 0.95
 .MaximumScale = max * 1.05
 .MinorUnit = unit / valores
 .MajorUnit = unit / valores
 End With
 Next

No me queda claro si estás tratando de ajustar el eje Y de un gráfico de tipo pie (lo digo porque veo que usas: ActiveChart.ChartType = xl3DPie). Si es así, no creo que tengas mucho éxito pues estos gráficos no tienen eje Y.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy