Ubicacion de los graficos via macro
Tengo un pequeño problema para la creación de gráficos. Y es básicamente respecto a la posición de mismo, y a veces en cuanto a sus dimensiones:
Con la grabadora obtuve el código que adjunto al final, la idea es la siguiente:
Tengo una tabla un botón para llenarla y otro para hacer el gráfico (la idea después es eliminar este botón e incluir el procedimiento luego del llenado en forma automática, pero eso no sería problema).
Bueno el botón me hace el llamado al gráfico una vez que los datos están llenos, el rango es:
"E16:J29", mi problema es: ¿Cómo puedo dejar que el gráfico iempre se despliegue a la altura de la celda c33?, con la redimensión del gráfico este debería quedar abajo de la tabla, el problema es que si lo llamo a veces me aparece más arriba otras más abajo aveces encima de la tabla y lo deseo abajo para hacer una presentación. Y basado en lo mismo, ¿cómo hago para que me borre el gráfico y cree otro si hago nuevamente el llamado? (Al final le agregue un nombre al gráfico activo así no me molesta si su nombre varía cada vez que lo creaba)
¿Se entendió la pregunta?, espero que si
Ahh lo olvidaba, ¿en un gráfico de barras como hago pra que se vean los valores sobre cada barra? (Siempre en macro)
Gracias de antemano
Narom
Pd:por cierto, a hora le agregué otro gráfico que es lamado en el mismo proceso y este siempre mantiene la misma posició respecto al primero (es decir, a unas cuantas celdas más abajo, por lo que creo que el tema de ubicación es relatia, pero no sé como fijar la primera posición)
Pd: en cursiva y negrita puse la parte que no me estaría cumpliendo la función requerida
Sub grafico1()
'
' Macro1 Macro
' Macro grabada el 18-06-2009 por emoran
'
'
Range("E16:J29").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("E16:J29"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "TITULODEL GRAFICO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "MESES"
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveSheet.ChartObjects(1).Name = "Graf1"
ActiveSheet.ChartObjects("Graf1").Activate
ActiveChart.ChartArea.Select
ActiveSheet. Shapes("Graf1"). IncrementLeft -100
ActiveSheet. Shapes("Graf1"). IncrementTop 220
ActiveSheet. Shapes("Graf1"). ScaleWidth 1.44, msoFalse, msoScaleFromTopLeft
ActiveSheet. Shapes("Graf1"). ScaleHeight 1.17, msoFalse, msoScaleFromTopLeft
End Sub
Con la grabadora obtuve el código que adjunto al final, la idea es la siguiente:
Tengo una tabla un botón para llenarla y otro para hacer el gráfico (la idea después es eliminar este botón e incluir el procedimiento luego del llenado en forma automática, pero eso no sería problema).
Bueno el botón me hace el llamado al gráfico una vez que los datos están llenos, el rango es:
"E16:J29", mi problema es: ¿Cómo puedo dejar que el gráfico iempre se despliegue a la altura de la celda c33?, con la redimensión del gráfico este debería quedar abajo de la tabla, el problema es que si lo llamo a veces me aparece más arriba otras más abajo aveces encima de la tabla y lo deseo abajo para hacer una presentación. Y basado en lo mismo, ¿cómo hago para que me borre el gráfico y cree otro si hago nuevamente el llamado? (Al final le agregue un nombre al gráfico activo así no me molesta si su nombre varía cada vez que lo creaba)
¿Se entendió la pregunta?, espero que si
Ahh lo olvidaba, ¿en un gráfico de barras como hago pra que se vean los valores sobre cada barra? (Siempre en macro)
Gracias de antemano
Narom
Pd:por cierto, a hora le agregué otro gráfico que es lamado en el mismo proceso y este siempre mantiene la misma posició respecto al primero (es decir, a unas cuantas celdas más abajo, por lo que creo que el tema de ubicación es relatia, pero no sé como fijar la primera posición)
Pd: en cursiva y negrita puse la parte que no me estaría cumpliendo la función requerida
Sub grafico1()
'
' Macro1 Macro
' Macro grabada el 18-06-2009 por emoran
'
'
Range("E16:J29").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("E16:J29"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "TITULODEL GRAFICO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "MESES"
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveSheet.ChartObjects(1).Name = "Graf1"
ActiveSheet.ChartObjects("Graf1").Activate
ActiveChart.ChartArea.Select
ActiveSheet. Shapes("Graf1"). IncrementLeft -100
ActiveSheet. Shapes("Graf1"). IncrementTop 220
ActiveSheet. Shapes("Graf1"). ScaleWidth 1.44, msoFalse, msoScaleFromTopLeft
ActiveSheet. Shapes("Graf1"). ScaleHeight 1.17, msoFalse, msoScaleFromTopLeft
End Sub
1 Respuesta
Respuesta de paramisolo
1