¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Macros y lenguaje VBA
  3. Gráficos
Extrait - Macros y lenguaje VBA Descubra la programación en Excel (nueva edición)
Extractos del libro
Macros y lenguaje VBA Descubra la programación en Excel (nueva edición) Volver a la página de compra del libro

Gráficos

Objetivos

En este capítulo, primero revisaremos cómo crear un gráfico a partir de un rango de celdas utilizando la cinta de opciones de Excel.

Existen miles de combinaciones de gráficos posibles; ¡incluso hay un campeonato mundial de Excel que se lleva a cabo sobre la creación gráfica!

Sin pretender convertirlo en un campeón mundial de gráficos de Excel, en este capítulo verá los objetos asociados a la creación de gráficos utilizados en VBA y cómo usar la grabadora de macros para que VBA escriba código por usted. Por último, una serie de ejercicios le ayudarán a asegurarse de que estos nuevos conocimientos han sido adquiridos correctamente.

Gráficos en Excel

Como dice el refrán, «una imagen vale más que mil palabras»: las representaciones gráficas tienen una importancia no despreciable a la hora de mostrar datos. Los gráficos han experimentado una importante evolución, y Excel permite crear muchos tipos diferentes de gráficos en función del tipo de datos por representar y del mensaje que se quiera transmitir.

En Excel, los gráficos se pueden crear desde la pestaña Insertar y están visibles en el grupo Gráficos:

images/cap18_img_01.png

Cuando se tiene un conjunto de datos por representar en forma gráfica, se puede elegir el tipo de gráfico. Una vez creado el gráfico, puede personalizarlo cambiando, por ejemplo, los colores o las formas de los puntos, las curvas, etc., que son visibles

Jerarquía de los objetos Shape, ChartObject y Chart

Al trabajar con gráficos, Excel considera en realidad varios niveles de objetos, cada uno de los cuales representa una parte de lo que el usuario podrá ver o manipular.

Sin entrar en detalles técnicos, he aquí una imagen con los diferentes objetos que componen un gráfico:

images/cap18_img_02.png

El marco del conjunto A (ChartObject) es el «contenedor» en el que se encuentran el área de trazado del gráfico B (PlotArea), el título del gráfico C (ChartTitle) y su leyenda D (Legend).

Dependiendo del tipo de gráfico, otros elementos, como los puntos de las curvas o los ejes también se representan mediante objetos que pueden manipularse en VBA.

Capa de diseño: Shape

Ya sea que se utilice una forma automática, un gráfico o una imagen, el primer nivel en el que Excel trabaja es un objeto Shape. Cada objeto Shape pertenece a la colección Shapes, que se encuentra en cada hoja de su libro.

Usted puede crear un gráfico a partir de la colección Shapes.

Hoja del gráfico: ChartObject

Cuando se crea un gráfico, este se encuentra en un contenedor que se puede volver a presentar visualmente, como el marco blanco en el que figuran el gráfico, el título y la leyenda. El conjunto de objetos ChartObject se encuentra en la colección ChartObjects.

ChartObject es el objeto Parent del gráfico...

Gráfico: Chart

En esta sección aprenderá más sobre el objeto Chart, que representa un gráfico de cualquier complejidad y que se manipula fácilmente con VBA.

Colección Charts

Al igual que todas las hojas pertenecen a la colección Worksheets, o los libros pertenecen a la colección Workbooks, los gráficos pertenecen a la colección Charts. A partir de esta colección puede crear gráficos o añadir otros. Se puede conocer el número de gráficos a partir de la propiedad Count.

Objeto Chart

En VBA, un gráfico está representado por un objeto Chart. Este tipo de datos tiene muchas propiedades y métodos propios. Las sutilezas de los gráficos no son el tema de este libro, pero descubrirá los principales métodos y propiedades que le permitirán personalizar sus gráficos.

Crear un gráfico

Tal y como sucede con los otros tipos de objetos, lo primero que hay que hacer antes de poder utilizar una variable es declararla.

Dim cht As Chart 

Ejemplo 1: declarar una variable de tipo Chart

Para agregar un gráfico al libro, debe usar el método Add de la colección Charts.

Dim cht As Chart 
Set cht = Charts.Add 

Ejemplo 2: agregar un gráfico

Existe otra forma de crear un gráfico, que se verá más adelante en este capítulo.

Definir un rango de datos de origen: SetSourceData

Una vez creado el gráfico, puede especificar el rango de celdas que servirán como origen. Esta asociación se realiza mediante el método SetSourceData. Este método utiliza dos parámetros; la sintaxis general es la siguiente:

Chart.SetSourceData(Source,[PlotBy]) 

Ejemplo 3: sintaxis general del método SetSourceData

El primer parámetro Source es el rango de celdas utilizadas, es decir, un objeto Range; el segundo parámetro se utiliza para especificar si los datos deben manipularse en filas...

Usar la grabadora de macros para crear un gráfico

Dada la gran variedad de opciones disponibles a la hora de crear o actualizar un gráfico, se recomienda comenzar utilizando la grabadora de macros para, a continuación, analizar las distintas líneas de código adaptando las instrucciones a su programa según sus necesidades.

Si retomamos el caso de la creación del gráfico basado en los datos de la hoja Ejercicios_Capitulo17, buscando un gráfico circular, esto es lo que generó la grabadora de macros. Las líneas se comentan para facilitar su comprensión.

Sub CreacionGrafico() 
   Sheets("Ejercicios_Capitulo17").Activate 
   Range("A1:B6").Select 'seleccionar el rango de celdas 
   ActiveSheet.Shapes.AddChart2(251, xlPie).Select 'crear  
gráfico y activarlo 
   ActiveChart.SetSourceData Source:=Range("Ejercicios_Capitulo17! 
$A$1:$B$6") 'establecer el rango de celdas de origen  
   ActiveChart.ChartTitle.Text = "Cantidad por categoría"  
'actualizar el título del gráfico 
End Sub 

Ejemplo 13: usar la grabadora de macros para generar un gráfico

Ejercicios

 Para estos ejercicios, cree una nueva hoja llamada Ejercicios_Capítulo18. En esta hoja, introduzca los datos en los rangos de celdas A1:B5 y D1:E5, como se muestra en la siguiente captura de pantalla:

images/cap18_img_03.png

Los siguientes ejercicios le permitirán comprender mejor la creación y manipulación de gráficos en su proyecto VBA. Si lo desea, puede utilizar la grabadora de macros para inspirarse en el código generado automáticamente. Aunque las soluciones visuales son solo indicativas, le permitirán ajustar su código si es necesario.

Si lo desea, puede crear un módulo específico para estos ejercicios.

Crear gráficos sencillos

Ventas mensuales

 Cree la macro Capitulo18_Ejercicio1A.

Esta macro debe crear un nuevo gráfico, de tipo Líneas, basado en los datos del rango de celdas A1:B5. El gráfico debe representar la evolución del volumen de ventas durante el periodo comprendido entre enero de 2022 y abril de 2022.

El título del gráfico será Volumen de ventas mensuales y no contendrá ninguna leyenda.

 Ejecute la macro Capitulo18_Ejercicio1A. El gráfico tendrá el siguiente aspecto:

images/cap18_img_04.png

Desglose de ventas por producto

 Cree la macro Capitulo18_Ejercicio1B.

Esta macro debe crear un gráfico, de tipo Circular, basado en los datos del rango de celdas D1:E5. El gráfico debe representar la distribución...