26/06/2016
En el dulce mundo de la pastelería, no solo importan el sabor y la presentación de nuestros postres, sino también los números que respaldan nuestro negocio. Saber qué pastel se vende más, cómo varían las ventas a lo largo del mes o qué ingredientes son los más populares es crucial. A menudo, usamos Excel para registrar estos datos, pero ¿cómo podemos presentarlos de una forma tan apetitosa como un pastel de tres chocolates? La respuesta está en los gráficos, y el ingrediente secreto para hacerlos de forma automática y profesional es VBA (Visual Basic for Applications).

Imagínate poder generar un reporte visual de tus ventas con solo un clic, actualizando los gráficos de tus tartas, croissants y muffins sin esfuerzo manual. En este artículo, te guiaremos paso a paso, como si de una receta se tratara, para que aprendas a usar el poder de VBA y así crear y manipular gráficos que no solo informen, sino que también impresionen.
- La Receta Básica: Horneando tu Primer Gráfico de Ventas
- Decorando el Pastel: Eligiendo el Tipo de Gráfico Perfecto
- El Toque Final: Personalización y Estilo para tus Gráficos
- Refinando la Presentación: Formatos Avanzados
- Gestionando tu Exhibidor de Gráficos
- Preguntas Frecuentes del Maestro Pastelero (FAQ)
La Receta Básica: Horneando tu Primer Gráfico de Ventas
Crear un gráfico es como preparar la masa base de un pastel. Necesitamos los ingredientes (nuestros datos) y una técnica para unirlos. En VBA, tenemos dos métodos principales para crear un gráfico incrustado directamente en nuestra hoja de cálculo.
Supongamos que tenemos una tabla simple en nuestra `Hoja1` con las ventas de la semana:
| Producto | Ventas (Unidades) |
|---|---|
| Tarta de Fresa | 50 |
| Croissant de Almendras | 120 |
| Muffin de Arándanos | 85 |
Nuestro rango de datos sería `A1:B4`.
Técnica 1: El Método `ChartObjects.Add`
Este es el método más común y nos da un control preciso sobre la ubicación y el tamaño del gráfico desde el principio. Es como colocar la masa en un molde específico.
Sub CrearGraficoConChartObjects() Dim graficoObjeto As ChartObject ' Añadimos un objeto de gráfico a la hoja "Hoja1" ' Left:=180 -> Posición desde la izquierda ' Width:=300 -> Ancho del gráfico ' Top:=7 -> Posición desde arriba ' Height:=200-> Altura del gráfico Set graficoObjeto = Sheets("Hoja1").ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200) ' Le decimos al gráfico cuáles son sus ingredientes (los datos) graficoObjeto.Chart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B4") End SubAl ejecutar este código, aparecerá un gráfico de barras por defecto en tu hoja, perfectamente posicionado y mostrando las ventas de tus productos. ¡Nuestro primer pastel visual está listo!
Técnica 2: El Método `Shapes.AddChart`
Esta es una alternativa más moderna y flexible, introducida en versiones más recientes de Excel. Es como usar un molde de silicona adaptable.
Sub CrearGraficoConShapes() Dim graficoIncrustado As Shape ' Añadimos una "forma" de tipo gráfico a la hoja Set graficoIncrustado = Sheets("Hoja1").Shapes.AddChart ' Especificamos el origen de los datos graficoIncrustado.Chart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B4") End SubEste método crea un gráfico con un tamaño y posición por defecto, que luego podemos ajustar. Ambos caminos llevan a un delicioso resultado.
Decorando el Pastel: Eligiendo el Tipo de Gráfico Perfecto
Un pastel de fresa no se presenta igual que un brownie. Del mismo modo, diferentes datos requieren diferentes tipos de gráficos. Con VBA, cambiar el estilo es tan fácil como cambiar la boquilla de la manga pastelera. La propiedad clave aquí es ChartType.
Imaginemos que queremos ver la proporción de ventas de cada producto. Un gráfico circular (`xlPie`) sería perfecto. Adaptemos nuestra receta:
Sub CrearGraficoCircular() Dim objGrafico As ChartObject Set objGrafico = Sheets("Hoja1").ChartObjects.Add(Left:=180, Width:=270, Top:=7, Height:=210) objGrafico.Chart.SetSourceData Source:=Sheets("Hoja1").Range("A1:B4") ' Aquí está el truco: cambiamos el tipo de gráfico objGrafico.Chart.ChartType = xlPie End Sub¡Voilà! Ahora tienes un hermoso gráfico circular que muestra qué porción del pastel de ventas corresponde a cada producto. Aquí tienes una tabla comparativa de los tipos de gráficos más comunes y su uso en pastelería:
| Tipo de Gráfico (Constante VBA) | Nombre Común | Uso Sugerido en Pastelería |
|---|---|---|
xlColumnClustered | Columnas Agrupadas | Comparar las ventas de diferentes productos en un mismo período. |
xlLine | Líneas | Mostrar la evolución de las ventas de un producto a lo largo del tiempo (días, semanas, meses). |
xlPie | Circular o de Tarta | Visualizar el porcentaje de contribución de cada producto al total de ventas. |
xlBarClustered | Barras Agrupadas | Similar a las columnas, pero ideal cuando los nombres de los productos son largos. |
xlArea | Área | Mostrar el volumen de ventas a lo largo del tiempo, destacando la magnitud del cambio. |
xlXYScatter | Dispersión (XY) | Correlacionar dos variables, como el precio de un pastel y su número de ventas. |
El Toque Final: Personalización y Estilo para tus Gráficos
Un gráfico sin formato es como un bizcocho sin cobertura. Ahora vamos a añadir los detalles que lo harán destacar. Para muchas de estas operaciones, primero debemos seleccionar el gráfico que queremos modificar, convirtiéndolo en el `ActiveChart`.
Un Título que Abre el Apetito
Todo buen postre necesita un nombre. Para añadir un título, usamos el método `SetElement`.
Sub AgregarTituloAlGrafico() ' Asegúrate de tener un gráfico seleccionado antes de ejecutar ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "Ventas Semanales de la Pastelería" End SubColoreando tu Creación: Fondos y Áreas
Podemos cambiar el color de fondo de todo el gráfico (`ChartArea`) o solo del área donde se dibujan los datos (`PlotArea`). Usemos colores que recuerden a nuestra pastelería, como un suave color crema.
Sub CambiarColorDeFondo() ' Cambia el color de fondo de todo el gráfico a un crema pastelero ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227) ' Cambia el color del área de trazado a un verde menta suave ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202) End SubLa Leyenda: Contando la Historia de tus Sabores
La leyenda explica qué representa cada color o forma en nuestro gráfico. Podemos añadirla y posicionarla fácilmente.
Sub AnadirLeyenda() ' Añade una leyenda en la parte inferior del gráfico ActiveChart.SetElement (msoElementLegendBottom) End SubPuedes usar otras posiciones como `msoElementLegendLeft`, `msoElementLegendRight` o `msoElementLegendTop`.
Etiquetas Claras: Mostrando los Números
A veces, queremos ver los valores exactos directamente sobre las barras o porciones del gráfico. Para eso están las etiquetas de datos.
Sub AnadirEtiquetasDeDatos() ' Muestra las etiquetas de datos en el extremo exterior de las barras/porciones ActiveChart.SetElement msoElementDataLabelOutSideEnd End SubRefinando la Presentación: Formatos Avanzados
Llevemos nuestros gráficos a un nivel de alta repostería con algunos ajustes finos.
Formato de Moneda para las Ventas
Si nuestro eje Y representa dinero, es fundamental que muestre el símbolo de la moneda.
Sub FormatoMonedaEjeY() ' xlValue se refiere al eje vertical (de valores) ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00" End SubUna Tipografía con Personalidad
La fuente que usamos comunica mucho. Podemos cambiar la tipografía de todo el gráfico para que coincida con la marca de nuestra pastelería.
Sub CambiarFuenteDelGrafico() With ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font .Name = "Times New Roman" ' Una fuente clásica y elegante .Bold = True .Size = 12 End With End SubGestionando tu Exhibidor de Gráficos
Una vez que dominamos la creación de un gráfico, podemos aprender a gestionarlos, ya sea para eliminarlos o para aplicar un estilo consistente a todos ellos.
Limpiando la Cocina: Cómo Eliminar un Gráfico
Si un gráfico ya no es útil, podemos eliminarlo con una simple línea de código.
Sub BorrarGraficoActivo() ' El objeto Parent del gráfico activo es el ChartObject que lo contiene ActiveChart.Parent.Delete End SubDecorando Varios Pasteles a la Vez: La Colección `ChartObjects`
Imagina que tienes varios gráficos en una hoja y quieres que todos tengan el mismo estilo (colores, fuentes, etc.). En lugar de hacerlo uno por uno, podemos recorrer la colección ChartObjects y aplicar los cambios a todos a la vez. ¡Es la máxima eficiencia en la cocina!
Sub EstandarizarTodosLosGraficos() Dim grafico As ChartObject For Each grafico In ActiveSheet.ChartObjects ' Aplicamos un estilo consistente a cada gráfico de la hoja grafico.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(245, 245, 245) grafico.Chart.PlotArea.Format.Fill.ForeColor.RGB = RGB(255, 255, 255) grafico.Chart.ChartTitle.Font.Name = "Arial" Next grafico End SubPreguntas Frecuentes del Maestro Pastelero (FAQ)
¿Puedo usar estos códigos en cualquier versión de Excel?
La gran mayoría de estos códigos son compatibles con todas las versiones modernas de Excel (2007 en adelante). VBA es muy estable. Sin embargo, algunas constantes específicas (como las `msoElement...`) pueden haber sido introducidas en versiones más recientes. La grabadora de macros es una excelente herramienta para verificar el código correcto para tu versión.
¿Qué pasa si mis datos no están en "Hoja1" o en el rango "A1:B4"?
Debes ajustar el código para que apunte a la ubicación correcta de tus datos. Por ejemplo, si tus ventas están en una hoja llamada "Ventas_Mayo" en el rango de C5 a D15, modificarías la línea de datos así: `Source:=Sheets("Ventas_Mayo").Range("C5:D15")`. ¡La precisión en las recetas es clave!
¿Es difícil aprender VBA?
Como aprender a hacer un soufflé, requiere paciencia y práctica, pero no es imposible. Comienza con estos ejemplos y haz pequeñas modificaciones. La herramienta "Grabar Macro" de Excel es tu mejor aliada: realiza una acción manualmente, detén la grabación y examina el código que Excel ha generado. Es como tener al chef revelándote sus secretos.
¿Cómo puedo aplicar esto para crear un panel de control (dashboard) para mi pastelería?
¡Esa es una excelente idea! Puedes crear una hoja especial en Excel que actúe como tu panel de control. En ella, puedes colocar varios gráficos (ventas por producto, evolución mensual, costes de ingredientes, etc.). Luego, puedes crear un botón que, al pulsarlo, ejecute una macro de VBA que actualice todos los datos y regenere o reformatee todos los gráficos automáticamente. Así, tendrás una visión completa y actualizada de tu negocio con un solo clic.
Si quieres conocer otros artículos parecidos a Crea Gráficos de Pastelería con la Magia de VBA puedes visitar la categoría Recetas.
