En el post de hoy veremos un sencillo código de VBA, donde un procedimiento Sub nos mostrará u ocultará las Series de un gráfico, insertado en una hoja de cálculo de Excel.
La cuestión la planteó un lector a través de un comentario:
De manera similar a la que plantea el lector, disponemos un origen de datos y un gráfico de columnas ya generado:
Como vemos en la imagen, en las celdas B6:D6, tenemos celdas con una Validación de datos tipo lista, con valores Sí / No. Estos valores, siguiendo las indicaciones del lector, serán los que nos servirán para elegir si queremos o no Mostrar u Ocultar las Series en el Grafico.
He decidido ejecutar la macro de Excel asignándola a un botón, aunque podemos optar por cualquier otro método.
Insertaremos el siguiente código en un Módulo en la Ventana del Explorador de proyectos del Editor de VBA, formando nuestra macro de Excel:
Ya podemos comprobar nestra macro de Excel, modificamos alguna de las celdas B6:D6, y ejecutamos:
La cuestión la planteó un lector a través de un comentario:
| ......tengo tres series de valores en tres columnas (5 valores por columna, y tengo un grafico de la primera columna vs la segunda y la tercera. En la sexta fila de ls columnas dos y tres tengo una lista desplegable con las opciones SI y NO, y quiero que cuando en la lista se seleccione la opcion SI los valores de la columna correspondientes aparezcan en la grafica en caso contrario que no aparezcan en la grafica... | 
De manera similar a la que plantea el lector, disponemos un origen de datos y un gráfico de columnas ya generado:
Como vemos en la imagen, en las celdas B6:D6, tenemos celdas con una Validación de datos tipo lista, con valores Sí / No. Estos valores, siguiendo las indicaciones del lector, serán los que nos servirán para elegir si queremos o no Mostrar u Ocultar las Series en el Grafico.
He decidido ejecutar la macro de Excel asignándola a un botón, aunque podemos optar por cualquier otro método.
Insertaremos el siguiente código en un Módulo en la Ventana del Explorador de proyectos del Editor de VBA, formando nuestra macro de Excel:
Sub MostrarSeries()
'Activamos el gráfico, previamente creado.
ActiveSheet.ChartObjects("1 Gráfico").Activate
'Nos aseguramos que es de tipo Columnas
ActiveChart.ChartType = xlColumnClustered
'y siempre para empezar, damos el rango completo como Fuente para construir el gráfico
ActiveChart.SetSourceData Source:=Range("A1:D5")
'Ahora condicionamos Mostrar o Eliminar cada una de las tres series del gráfico
'al valor de las celdas B6:D6
If Range("B6") = "Sí" Then
ActiveChart.SeriesCollection("Año2010").Values = Range("B2:B5")
ElseIf Range("B6") = "No" Then
ActiveChart.SeriesCollection("Año2010").Delete
End If
If Range("C6") = "Sí" Then
ActiveChart.SeriesCollection("Año2011").Values = Range("C2:C5")
ElseIf Range("C6") = "No" Then
ActiveChart.SeriesCollection("Año2011").Delete
End If
If Range("D6") = "Sí" Then
ActiveChart.SeriesCollection("Año2012").Values = Range("D2:D5")
ElseIf Range("D6") = "No" Then
ActiveChart.SeriesCollection("Año2012").Delete
End If
End SubYa podemos comprobar nestra macro de Excel, modificamos alguna de las celdas B6:D6, y ejecutamos:


 


No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.