Generar una gráfica en excel mediante vba
Estoy intentando generar una gráfica para excel utilizando vba. Ahora mismo, lo que he conseguido es representar todos los valores que quiero, en una gráfica de tipo lineal (el código utilizado es el que te adjunto). La consulta que quiero realizarte, es si conoces alguna forma en vba para que una de las columnas se represente de forma de gráfico de columnas, mientras el resto de columnas sigan permaneciendo de tipo linela. Además, me gustaría saber como podría asignarle un color definido por mi a cada una de las columnas de datos de la gráfica.
G_Hoja = "xxx"
g_rango = "Av5:AZ57"
G_OrientSerie = "Columnas"
G_OrientSerie = IIf(Left(UCase(G_OrientSerie), 3) = "COL", xlColumns, xlRows)
Charts.Add
With ActiveChart
.ChartType = xlLineMarkers ' Tipo de Gráfica
.SetSourceData Source:=Sheets(G_Hoja).Range(g_rango), PlotBy:=G_OrientSerie
.Location Where:=xlLocationAsObject, Name:=G_Hoja
End With
With ActiveChart
.HasTitle = True
Dim rng As Range
Set rng = ActiveSheet.Range("BI6:BP28")
.Parent.Left = rng.Left
.Parent.Top = rng.Top
.Parent.Width = rng.Width
.Parent.Height = rng.Height
.Legend.Position = xlLegendPositionBottom
.ChartTitle.Characters.Text = "Titulo de la Grafica"
.ChartArea.Fill.Visible = msoFalse
.ChartArea.Border.LineStyle = False
.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False, HasLeaderLines:=True
End With
Muchas Gracias. S2
G_Hoja = "xxx"
g_rango = "Av5:AZ57"
G_OrientSerie = "Columnas"
G_OrientSerie = IIf(Left(UCase(G_OrientSerie), 3) = "COL", xlColumns, xlRows)
Charts.Add
With ActiveChart
.ChartType = xlLineMarkers ' Tipo de Gráfica
.SetSourceData Source:=Sheets(G_Hoja).Range(g_rango), PlotBy:=G_OrientSerie
.Location Where:=xlLocationAsObject, Name:=G_Hoja
End With
With ActiveChart
.HasTitle = True
Dim rng As Range
Set rng = ActiveSheet.Range("BI6:BP28")
.Parent.Left = rng.Left
.Parent.Top = rng.Top
.Parent.Width = rng.Width
.Parent.Height = rng.Height
.Legend.Position = xlLegendPositionBottom
.ChartTitle.Characters.Text = "Titulo de la Grafica"
.ChartArea.Fill.Visible = msoFalse
.ChartArea.Border.LineStyle = False
.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False, HasLeaderLines:=True
End With
Muchas Gracias. S2
1 Respuesta
Respuesta de mrtool
1