Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Gráficos Barra 3D Agrupada

| Sin comentarios

Las Macros también tienen un uso extenso para realizar gráficos que resuman determinada información, y mucha aplicación en temas relativos a ventas, por ejemplo, en casos en los que se desee realizar un análisis de ventas durante un determinado periodo y comparativos con la ayuda de gráficos de barras.

Ejemplo

En la tienda de artículos deportivos “Sport World” se desea realizar un comparativo de un nuevo lanzamiento de polos de 5 marcas a diferentes precios durante 2 meses, para conocer qué productos generan mayores ventas y aceptación. Para ello, será muy útil realizar un gráfico de Barras 3D Agrupada.

Semana a semana se contará con la siguiente data (ejemplo de data semanal, para los meses de marzo y abril 2015).

Gráficos Barra 3D Agrupada 01

(Para mayor visualización de la imagen, hacer click en la misma)

Excel nos permite realizar gráficos comparativos, para  lo que se debe  hacer click en la pestaña Insertar Gráfico, luego en la sección “Gráficos” desplegar las opciones,  y seleccionar “Barra en 3D Agrupada”. 

 No obstante, El proceso de insertar gráfico, seleccionar solo la venta en unidades y venta en Soles (excluyendo el precio unitario), colocar título al gráfico, cambiar el color de las barras, se tendría que repetir semana a semana durante los dos meses que durará la evaluación. Para ello, podemos automatizar este proceso con MACROS y así ahorrar tiempo.

Gráficos Barra 3D Agrupada 02

(Para mayor visualización de la imagen, hacer click en la misma)

En este caso, se podría crear una macro para generar el gráfico con el formato deseado partiendo de los datos con los que se cuentan, que se genere simplemente al hacer click en un botón. De estas maneras, todos los pasos anteriormente descritos se resumirían a un click.

Gráficos Barra 3D Agrupada 03

CÓDIGO Y EXPLICACIÓN:

La primera parte del código sirve para generar el tipo de gráfico deseado en la hoja activa (ActiveSheet).
ActiveChart hace referencia al gráfico que se generará en esta macro, y sobre el cual se realizarán posteriores cambios en el formato.

Un punto importante del código es la parte ActiveChart.SeriesCollection(1).Delete  pues esta línea indica que no se tomará en cuenta el Precio Unitario de los productos en el gráfico del rango ("Ventas!$A$9:$D$15") , es decir, los datos que se encuentran en la primera posición de la tabla de los datos,después de la columna "Marca". (esto no se desea visualizar en el gráfico)

La segunda parte del código modifica básicamente el formato del gráfico activo (ActiveChart) (color, título del gráfico, alineación del texto,por ejemplo).

Sub grafbarras()

' grafbarras Macro

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xl3DBarClustered
ActiveChart.SetSourceData Source:=Range("Ventas!$A$9:$D$15")
ActiveChart.SeriesCollection(1).Delete

ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.ChartTitle.Text = "Ventas de polos" & Chr(13) & ""
Selection.Format.TextFrame2.TextRange.Characters.Text = "Ventas de polos" & Chr(13) & ""

With Selection.Format.TextFrame2.TextRange.Characters(1, 16).ParagraphFormat
.TextDirection = msoTextDirectionLeftToRight
.Alignment = msoAlignCenter

End With

With Selection.Format.TextFrame2.TextRange.Characters(1, 16).Font
.BaselineOffset = 0
.Bold = msoTrue
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(0, 0, 0)
.Fill.Transparency = 0
.Fill.Solid
.Size = 18
.Italic = msoFalse
.Kerning = 12
.Name = "+mn-lt"
.UnderlineStyle = msoNoUnderline
.Strike = msoNoStrike

End With
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText2
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.6000000238
.Transparency = 0
.Solid

End With

End Sub

 

Archivo completo:  Barra 3D Agrupada 2 gv b

Por: Gina Villegas

Deja una respuesta

Los campos requeridos estan marcados con *.