Si desea hacer un tablero con un gráfico que cambie sus datos según las opciones seleccionadas, puede usar los eventos en VBA. Sí, se puede hacer. No necesitaremos ningún cuadro desplegable, cortador o cuadro combinado. Haremos clic en las celdas y cambiaremos los datos para crear un gráfico a partir de la celda seleccionada.

image

Siga los pasos a continuación para crear gráficos dinámicos en Excel que cambien según la selección de celda.

Paso 1: Prepare los datos en una hoja como fuente para el gráfico.

Aquí tengo algunos datos de muestra de diferentes regiones en una hoja. Lo llamé datos de origen.

image

Paso 2: Obtenga los datos de una región a la vez en una hoja diferente.

  • Ahora inserte una nueva hoja. Nómbrelo apropiadamente. Lo llamé «Panel de control».

  • Copie todos los meses en una columna. Escriba el nombre de una región junto al mes.

image

  • Ahora queremos extraer datos de la región en la celda D1. Queremos que los datos cambien a medida que cambia la región en D1. Para eso, podemos usar el enlace: / lookup-formulas-vlookup-with-dynamic-col-index [Two Way Lookup].

Dado que mis datos de origen están en A2: D8 en la hoja de datos de origen. Utilizo la siguiente fórmula.

=VLOOKUP(C2,’Source

Data’!$A$2:$D$8,MATCH($D$1,’Source

Data’!$A$1:$D$1,0))

Aquí estamos usando la indexación dinámica de columnas para BUSCARV. Puede leer sobre él enlace: / lookup-formulas-vlookup-with-dynamic-col-index [aquí].

  • Inserte un gráfico con estos datos en la hoja del Tablero. Utilizo un gráfico de líneas simple. Oculte la fuente del gráfico si no desea mostrarlos.

image

Ahora, cuando cambie el nombre de la región en D1, el gráfico cambiará en consecuencia. El siguiente paso es cambiar el nombre de la región en D1 al seleccionar una opción de la celda especificada.

Paso 3: cambie la región al seleccionar un nombre de región en el rango especificado. * Escriba todos los nombres de las regiones en un rango, los escribo en el rango A2: A4.

image

  • Haga clic derecho en el nombre de la hoja del Panel de control y haga clic en «Ver código»

opción para ingresar directamente al módulo de hoja de trabajo en VBE para que podamos usar el enlace: / events-in-vba-the-worksheet-events-in-excel-vba [evento de hoja de trabajo] `.

image

  • Ahora escriba el código siguiente en VB Editor.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("A2:A4")) Is Nothing Then

Range("A2:A4").Interior.ColorIndex = xlColorIndexNone

Dim region As Variant

region = Target.value

On Error GoTo err:

Select Case region

Case Is = "Central"

Range("D1").value = region

Case Is = "East"

Range("D1").value = region

Case Is = "West"

Range("D1").value = region

Case Else

MsgBox "Invalid Option"

End Select

Target.Interior.ColorIndex = 8

End If

err:

End Sub

Y ya está. Ahora, siempre que seleccione una celda en el rango A2: A4, su valor se asignará a D1 y los datos del gráfico cambiarán en consecuencia.

image

He explicado cómo funciona este código a continuación. Puede comprenderlo y realizar cambios según sus necesidades. Proporcioné enlaces a temas de ayuda que he usado aquí en este ejemplo. Así que échales un vistazo.

¿Cómo funciona el código?

Aquí he usado el`link: / events-in-vba-the-events-in-excel-vba [Event of Excel] . Usé un `link: / events-in-vba-the-worksheet-events-in-excel-vba [evento de la hoja de trabajo] «SelectionChange» para activar los eventos.

If Not Intersect(Target, Range("A2:A4")) Is Nothing Then

Esta línea establece el enfoque en el rango A2: A4 para que el evento SelectionChange solo se active cuando la selección esté en el rango A2: A4. El código entre If y End solo se ejecutará si la selección está en el rango A2: A4. Ahora puede configurarlo según sus requisitos para hacer que su gráfico sea dinámico.

Range("A2:A4").Interior.ColorIndex = xlColorIndexNone

Esta línea establece el color del rango A2: A4 en nada.

region = Target.value

On Error GoTo err:

En las dos líneas anteriores, obtenemos el valor de las celdas seleccionadas en la región variable e ignoramos cualquier error que ocurra. no use la línea «En caso de error Ir a err:» hasta que esté seguro de que desea ignorar cualquier error que ocurra. Lo usé para evitar un error cuando selecciono varias celdas.

Select Case region

Case Is = "Central"

Range("D1").value = region

Case Is = "East"

Range("D1").value = region

Case Is = "West"

Range("D1").value = region

Case Else

MsgBox "Invalid Option"

End Select

En las líneas anteriores, estamos usando excels link: / general-topics-in-vba-vba-select-case-Alternative-of-nested-if-else-if-Statement [Select Case Statement] para establecer el valor del rango D1.

Target.Interior.ColorIndex = 8

End If

err:

End Sub

Antes de la instrucción End If, cambiamos el color de la opción seleccionada para que quede resaltada. Luego, la instrucción If termina y la etiqueta err: comienza.

La instrucción On Error saltará a esta etiqueta si se produce algún error durante la instrucción de selección.

Descargue el archivo de trabajo a continuación.

image 48

Artículos relacionados:

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Eventos de gráficos integrados usando VBA en Microsoft Excel] * | Los eventos de gráficos integrados pueden hacer que su gráfico sea más interactivo, dinámico y útil que los gráficos normales. Para habilitar los eventos en los gráficos, …​

link: / events-in-vba-the-events-in-excel-vba [Los eventos en Excel VBA] | * Hay siete tipos de eventos en Excel. Cada evento tiene un alcance diferente. El evento de aplicación se ocupa a nivel de libro de trabajo. Libro de trabajo a nivel de hojas. Evento de hoja de trabajo a nivel de rango.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Los eventos de la hoja de trabajo en Excel VBA] * | El evento de la hoja de trabajo es realmente útil cuando desea que sus macros se ejecuten cuando ocurre un evento específico en la sábana.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Workbook events using VBA in Microsoft Excel] | Los eventos del libro funcionan en todo el libro. Dado que todas las hojas son parte del libro de trabajo, estos eventos también funcionan en ellas.

link: / events-in-vba-prevent-that-an-automacroeventmacro-execute-using-vba-in-microsoft-excel [Impedir que un automacro / eventmacro se ejecute usando VBA en Microsoft Excel] * | Para evitar la ejecución de la macro auto_open use la tecla shift.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Eventos de objeto de gráfico usando VBA en Microsoft Excel] * | Los gráficos son objetos complejos y hay varios componentes que se les adjuntan. Para hacer los eventos del gráfico usamos el módulo Clase.

Artículos populares:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-su-productividad [50 accesos directos de Excel para aumentar su productividad] | Acelera tu tarea. Estos 50 atajos harán que su trabajo sea aún más rápido en Excel.

link: / fórmulas-y-funciones-introducción-de-vlookup-function [La función VLOOKUP en Excel] | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.

enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016] | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico.

La función Countif es esencial para preparar su tablero.

link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel] | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.