Grafico en excel desde VB

Tengo un problemilla que soy incapaz de solucionar y tras haber leído varias respuestas tuyas, he decidido consultarte sin dudarlo, pues pareces un verdadero experto.
El tema en cuestión, es que necesito que mi programa en visual basic 6.0, cree un gráfico en una hoja de excel que anteriormente ha creado con los datos de una Base de datos.
Entonces, no he tenido problema al crear la hoja, ni al meter los datos, pero soy incapaz de crear un gráfico correcto con estos datos. Te mando el código a ver si eres capaz de mostrarme donde esta el error.
Código:
Supongamos que las celdas de las que quiero que se cree el gráfico sean:
c3 = "si"
c4 = "no"
d3 = 20
d4 = 30
Set ch = Worksheet("Hoja1").ChartObjects.Add(300, 70, 100, 100)
ch.Chart.ChartWizard Source:=Worksheets("Hoja1").Range("c3:d4"), gallery:=xlPie, Title:="Estadisticas", Format:=3, PlotBy:=xlColumns
Este es el problemilla, que me dibuja un gráfico pero siempre falla algo.
Me parece que son las series pero ya ahí me pierdo.
Suponía que al decirle el rango y que es por columnas, Excel sabría automáticamente que es lo que quiero,(como se hace en el propio Excel cuando seleccionas un rango y le das al icono de los gráficos) pero debe de ser mucho suponer.
Así que si fueses tan amable de contestarme, realmente te estaría muy agradecido.
Respuesta
1
Sobre la base de tus datos originales, armé este código, donde podrás cambiarles las variables para ajustarlo a tu caso real.
Ingresa en un nuevo módulo el siguiente código:
Sub ArmaChart()
'Ingresa aquí los datos de tu planilla
G_Hoja = "Hoja1"
G_Rango = "C2:D4"
G_OrientSerie = "Columnas" ' "Filas" si estuviera en ese sentido
'============ gracias
G_OrientSerie = IIf(Left(UCase(G_OrientSerie), 3) = "COL", xlColumns, xlRows)
Charts.Add
With ActiveChart
.ChartType = xl3DPieExploded 'o xlPie , CAMBIA AL ESTILO QUE NECESITES
.SetSourceData Source:=Sheets(G_Hoja).Range(G_Rango), PlotBy:=G_OrientSerie
.Location Where:=xlLocationAsObject, Name:=G_Hoja
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Tu Título" ' Ingresa el título que desees
.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False, HasLeaderLines:=True
End With
Range(G_Rango).Cells(1.1).Select
End Sub
Luego en la hoja correspondiente, ejecuta esta macro (ArmaChart)
Todas las veces que lo probé funciona correctamente.
Espero que esto ayude a resolver tu problema. Si así fuera, agradeceré un comentario y que la finalices.
(Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme)
Un abrazo!
Fernando
"Me lo explicaron y lo olvidé,
lo leí y lo entendí,
lo hice y lo aprendí".
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas