Se vuoi creare una dashboard con un grafico che modifica i suoi dati secondo le opzioni selezionate, puoi utilizzare gli eventi in VBA. Sì, si può fare. Non avremo bisogno di alcun menu a discesa, filtro dei dati o casella combinata. Renderemo le celle cliccabili e modificheremo i dati per creare un grafico dalla cella selezionata.

image

Segui i passaggi seguenti per creare grafici dinamici in Excel che cambiano in base alla selezione della cella.

Passaggio 1: preparare i dati in un foglio come origine per il grafico.

Qui ho alcuni dati di esempio da diverse regioni in un foglio. L’ho chiamato dati di origine.

image

Passaggio 2: ottieni i dati di una regione contemporaneamente su un foglio diverso.

  • Ora inserisci un nuovo foglio. Assegnagli un nome appropriato. L’ho chiamato “Dashboard”.

  • Copia tutti i mesi in una colonna. Scrivi il nome di una regione accanto al mese.

image

  • Ora vogliamo estrarre i dati della regione nella cella D1. Vogliamo che i dati cambino quando la regione cambia in D1. Per questo, possiamo usare link: / lookup-formulas-vlookup-with-dynamic-col-index [Two Way Lookup].

Poiché i miei dati di origine sono in A2: D8 sul foglio dati di origine. Uso la formula seguente.

=VLOOKUP(C2,’Source

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

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

Qui stiamo usando l’indicizzazione dinamica delle colonne per CERCA.VERT. Puoi leggere a riguardo link: / lookup-formas-vlookup-with-dynamic-col-index [qui].

  • Inserisci un grafico utilizzando questi dati nel foglio Dashboard. Uso un semplice grafico a linee. Nascondi l’origine del grafico se non desideri visualizzarli.

image

Ora mentre cambi il nome della regione in D1, il grafico cambierà di conseguenza. Il passaggio successivo consiste nel modificare il nome della regione in D1 mentre selezioni un’opzione dalla cella specificata.

Passaggio 3: modifica la regione mentre selezioni il nome di una regione nell’intervallo specificato. * Scrivi tutti i nomi delle regioni in un intervallo, li scrivo nell’intervallo A2: A4.

image

  • Fare clic con il tasto destro sul nome del foglio Dashboard e fare clic su “Visualizza codice”

opzione per entrare direttamente nel modulo del foglio di lavoro in VBE in modo da poter usare`link: / events-in-vba-the-worksheet-events-in-excel-vba [evento del foglio di lavoro] `.

image

  • Ora scrivi sotto il codice in 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

Ed è fatto. Ora, ogni volta che selezionerai una cella nell’intervallo A2: A4, il suo valore verrà assegnato a D1 ei dati del grafico cambieranno di conseguenza.

image

Ho spiegato come funziona questo codice di seguito. Puoi capirlo e apportare modifiche secondo le tue esigenze. Ho fornito collegamenti ad argomenti della guida che ho usato qui in questo esempio. Quindi dai un’occhiata.

Come funziona il codice?

Qui ho usato il`link: / events-in-vba-the-events-in-excel-vba [Event of Excel] `. Ho usato un `link: / events-in-vba-the-worksheet-events-in-excel-vba [evento foglio di lavoro]” “SelectionChange” per attivare gli eventi.

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

Questa linea imposta lo stato attivo sull’intervallo A2: A4 in modo che l’evento SelectionChange venga generato solo quando la selezione è nell’intervallo A2: A4. Il codice tra If e End verrà eseguito solo se la selezione è nell’intervallo A2: A4. Ora puoi impostarlo secondo le tue esigenze per rendere dinamico il tuo grafico.

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

Questa linea imposta il colore dell’intervallo A2: A4 su nulla.

region = Target.value

On Error GoTo err:

Nelle due righe precedenti, otteniamo il valore delle celle selezionate nella regione variabile e ignoriamo qualsiasi errore che si verifica. non utilizzare la riga “On Error GoTo err:” finché non sei sicuro di voler ignorare qualsiasi errore che si verifica. L’ho usato per evitare un errore quando seleziono più celle.

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

Nelle righe precedenti, stiamo usando excels link: / general-topics-in-vba-vba-select-case-alternative-of-nested-if-else-if-statements [Select Case Statement] per impostare il valore della gamma D1.

Target.Interior.ColorIndex = 8

End If

err:

End Sub

Prima dell’istruzione End If, cambiamo il colore dell’opzione selezionata in modo che venga evidenziata. Quindi l’istruzione If finisce e il tag err: inizia.

L’istruzione On Error passerà a questo tag se si verifica un errore durante l’istruzione select.

Scarica il file di lavoro di seguito.

image 48

Articoli correlati:

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Eventi grafici incorporati utilizzando VBA in Microsoft Excel] * | Gli eventi dei grafici incorporati possono rendere il tuo grafico più interattivo, dinamico e utile rispetto ai grafici normali. Per abilitare gli eventi in classifica noi …​

link: / events-in-vba-the-events-in-excel-vba [Gli eventi in Excel VBA] | * Ci sono sette tipi di eventi in Excel. Ogni evento si occupa di scopi diversi. L’evento dell’applicazione si occupa a livello di cartella di lavoro. Cartella di lavoro a livello di fogli. Evento del foglio di lavoro a livello di intervallo.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Gli eventi del foglio di lavoro in Excel VBA] * | Gli eventi del foglio di lavoro sono davvero utili quando si desidera che le macro vengano eseguite quando si verifica un evento specificato il foglio.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Workbook events using VBA in Microsoft Excel] | Gli eventi della cartella di lavoro funzionano sull’intera cartella di lavoro. Poiché tutti i fogli fanno parte della cartella di lavoro, questi eventi funzionano anche su di essi.

link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Prevent an automacro / eventmacro executes using VBA in Microsoft Excel] * | Per impedire l’esecuzione della macro auto_open utilizzare il tasto Maiusc.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Chart object events using VBA in Microsoft Excel] * | I grafici sono oggetti complessi e ci sono diversi componenti che hai collegato ad essi. Per creare gli eventi grafico usiamo il modulo Class.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie renderanno il tuo lavoro ancora più veloce su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel] | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli.

link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.

La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.