Usare gli eventi del foglio grafico (link: / tips-how-to-move-a-chart-to-a-new-sheet-in-excel [foglio di lavoro specialmente per i grafici]) è abbastanza semplice. Ma quando si tratta di utilizzare eventi su grafici incorporati, non è così semplice. Ma ti assicuro che gli eventi con grafici incorporati non sono così difficili da attivare. È molto simile a link: / events-in-vba-how-to-create-application-level-events-in-excel-vba [creating application events]. Quindi, senza ulteriori indugi, iniziamo.

Quindi, ci sono due passaggi per attivare un evento grafico incorporato. La prima è la creazione della classe di eventi del grafico e la definizione degli eventi. Il secondo è creare un oggetto di quella classe di eventi. Questo è tutto.

Passaggio 1: creazione della classe di eventi del grafico e definizione degli eventi

  • Inserisci un`link: / modules-class-modules-in-vba-vba-class-modules-e-come-usarli-[modulo di classe] `. Chiamalo come vuoi. L’ho chiamato ChartClass.

  • Definisci una variabile evento di tipo Grafico con la parola chiave WithEvents.

Private WithEvents CEvents As Chart
  • Inizializza questo evento nella subroutine class_initialize ().

Dal menu a discesa a sinistra, seleziona la classe. Successivamente, nel menu a discesa in alto a destra, seleziona Inizializza.

Private Sub Class_Initialize()

Set CEvents = ActiveSheet.ChartObjects(1).Chart

End Sub

Qui stiamo inizializzando il grafico CEvents con il primo grafico creato su quel foglio. L’1 è il numero di indice degli oggetti del grafico nel foglio attivo.

  • Ora definisci gli eventi che desideri utilizzare. Dall’elenco a discesa in alto a sinistra, seleziona l’oggetto CEvent. Tutte le procedure di gestione degli eventi disponibili saranno disponibili nel menu a discesa in alto a destra. Seleziona quello di cui hai bisogno e definisci cosa vuoi fare quando si attiva l’evento.

Per dimostrare l’uso, scelgo l’evento CEvents_Activate. Proverò a mostrare all’utente che l’evento grafico è attivato in una casella di messaggi.

Private Sub CEvents_Activate()

MsgBox "The chart Events are working"

End Sub

Il nostro lavoro qui è finito. Puoi creare tutti gli eventi che desideri dagli eventi disponibili per il tipo di grafico qui. Ma gli eventi non funzioneranno ancora perché è solo una lezione. Abbiamo bisogno di creare l’oggetto di questa classe in un sub in qualsiasi modulo normale o modulo oggetto. Quindi esegui quel sottomarino.

Dopo di che il nostro evento inizierà a funzionare.

image

Passaggio 2: creare l’oggetto classe grafico nel modulo.

  • Inserisci un modulo normale.

  • Dichiara una variabile della classe che hai creato prima.

Dim mychart As ChartClass
  • Crea un sub e inizializza la variabile con l’oggetto della classe ChartClass.

Sub activateChartEvent()

Set mychart = New ChartClass

End Sub

image

Esegui questo sottomarino usando F5. Man mano che eseguirai questo codice, gli eventi del grafico saranno attivi per il primo grafico sul foglio attualmente attivo poiché abbiamo utilizzato questa riga per l’inizializzazione del grafico eventSet CEvents = ActiveSheet.ChartObjects (1) .Chart. * Ed è fatto. Ora se fai clic sul primo grafico sul foglio attualmente attivo, verrà visualizzato il messaggio che gli eventi del grafico stanno funzionando.

Attivazione e disattivazione degli eventi dell’applicazione VBA Una volta eseguita la macro nel modulo normale, si attiverà sempre finché non si chiude la cartella di lavoro che contiene gli eventi. Ma potresti volerlo accendere e spegnere a tuo piacimento. Ci sono due modi per farlo.

Annullare l’oggetto dell’evento Impostare EnableEvents su False

1. Annullare l’oggetto evento

In una subroutine separata, imposta l’oggetto evento su Nothing

Private Sub StopEvents()

Set Mychart= Nothing

End Sub

Una volta eseguito questo codice, gli eventi smetteranno di funzionare. Puoi metterlo in un pulsante sul foglio di lavoro per interrompere gli eventi. Ora avrai due pulsanti per avviare e interrompere questi eventi specifici. Fermerà semplicemente gli eventi creati dall’oggetto AppE.

2. Imposta EnableEvents su False

Il secondo metodo è disabilitare gli eventi. Per rendere non rilevabili tutti gli eventi impostiamo la proprietà EnableEvents della classe Application su False.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Il codice sopra disabiliterà tutti gli eventi. Anche gli eventi Excel predefiniti. Non funzioneranno fino a quando non li riavvierai. Anche se si esegue la subroutine StartEvents () (sopra), l’evento non funzionerà. Per far funzionare nuovamente tutti gli eventi, sarà necessario impostare nuovamente la proprietà EnableEvents su True.

Quindi, se vuoi che i tuoi eventi funzionino ogni volta che inizi gli eventi, aggiungi questa riga di codice nel sottotitolo.

Private Sub StartEvents()

Application.EnableEvents = True

Set mychart = New ChartClass

End Sub

image

Quindi sì ragazzi, è così che puoi usare l’evento grafico incorporato in Excel.

Fammi sapere se questo è stato abbastanza esplicativo e ti ha aiutato a comprendere gli eventi a livello di applicazione in Excel VBA. Scrivi i tuoi pensieri nella sezione commenti qui sotto. Se hai qualcosa da aggiungere a questo, scrivi anche quello. Puoi porre le tue domande relative a questo articolo o qualsiasi altro argomento relativo a Excel VBA nella sezione commenti qui sotto.

Scarica il file di lavoro qui sotto:

image 48

Articoli correlati:

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.