Cuando se graba una macro que permite crear un gráfico, por lo general se codifican líneas de código que no se usan en el gráfico. Por ejemplo, hemos creado un gráfico que tiene título o leyenda y no lo queremos; el gráfico se crea para una serie contenida en un rango y nos gustaria que el rango sea otro, etc.
En esta ocasión vamos a modificar las macros que hemos grabado en la sesión anterior en donde trataremos de quitar opciones que no son usadas en el gráfico y añadiremos otras que harán de la macro más versátil.
Abra su archivo Graficos01a.xlsm creado en la sesión anterior o haga clic aquí
Elimine todos los gráficos que tuviera en la Hoja1.
Analicemos los gráficos:
En cuanto a MacGraff01:
Traza un gráfico de la serie de Milpo y en el eje X coloca los meses. En este caso es B2:C14. ¿Y si no quisiéramos Raura o CentroMin?
Para ello, es mejor ingresar por teclado el rango a ser graficado. Por ello, inserta antes del Range(“B2:C14”).Select, lo siguiente:
Celda = Trim(InputBox("Ingrese el rango de los datos a graficar"))
Cambia el Range… por
Range(Celda).Select
< ActiveChart.SetSourceData Source:=Range("Hoja1!" + Celda)
Grabe su libro como Graficos01b.xlsm
Ahora ejecute la macro y cuando pida rango, digite B2:C14
Vuelva a ejecutarlo y digite: E2:E14
¿Cómo háriamos para que grafique Raura y use a los meses en el Eje X?
Cuando pida rango, digite: B2:B14,E2:E14
Pruebe ahora digitando: B2:B14,C2:D14,G2:G14
Finalmente:
Para insertar el título del gráfico, se deberá usar las siguientes dos líneas. La primera activa (SetElement) la propiedad titulo y la segunda ingresa el título como caption.
ActiveChart.SetElement (msoElementChartTitleAboveChart)
Selection.Caption = "Valor promedio mensual de las acciones"
' Para activar la leyenda en el lado derecho del gráfico, debemos ingresar la síguiente línea de código:
ActiveChart.SetElement (msoElementLegendRight)
De manera que la macro cobró importancia.
Vuelva a grabar su libro.
En cuanto a MacGraff02:
Haremos las siguientes modificaciones:
La línea:
Range("B2:D16").Select
La cambiaremos por
Celda = Trim(InputBox("Ingrese el rango de los datos a graficar"))
Range(Celda).Select
<
ActiveChart.SetSourceData Source:=Range("Hoja1!$B$2:$D$16")
La modificaremos según hemos visto, por
ActiveChart.SetSourceData Source:=Range("Hoja1!" + Celda)
Ahora ejecute la macro.
Agreguemos otros cambios:
Vamos a modificar la presentación de las barras. Para ello, ingresamos al formato del área de datos y modificamos los colores de las categorías.
ActiveChart.ChartGroups(1).VaryByCategories = True
Del mismo modo, reducimos la separación de las barras
ActiveChart.ChartGroups(1).GapWidth = 20
Ejecute la macro con estos cambios
En la siguiente sesión usaremos botones de control para seleccionar la serie y el tipo de gráfico deseado. Ello usará necesariamente nombre de rango en lugar de rango.
El archivo con los cambios se encuentra con el nombre Graficos01b.xlsm, haga clic aquí
Modifique las otras tres macros de acuerdo a los cambios efectuados o, introduzca los que desee.
¿Cómo puedo modificar el rango de la serie de datos, el color del área de trazado, etc.?
Para estos y muchas otras preguntas, es suficiente grabar una macro que haga lo que se desea y, luego, mirando la forma cómo lo ha hecho, insertar o modificar los cambios en la macro de interés.
La siguiente imagen muestra el procedimiento respectivo.
Vaya a la siguiente sesión haciendo aquí