Joydip ha un foglio di lavoro Excel che viene aggiornato costantemente e automaticamente con i dati del mercato delle materie prime in tempo reale. Vuole visualizzare una finestra di messaggio contenente un messaggio particolare ogni volta che i dati in una cella / intervallo specificato cambiano per soddisfare alcuni criteri predefiniti. La convalida dei dati non funzionerà, perché la funzionalità di convalida non viene attivata quando i dati cambiano automaticamente.

Il modo migliore per controllare i dati e visualizzare la finestra di messaggio desiderata consiste nell’utilizzare una macro che viene attivata dall’evento Worksheet_Change. Questo evento viene attivato ogni volta che il contenuto di una cella viene modificato. Tuttavia, non viene attivato da una modifica di ciò che viene visualizzato in una cella. Ad esempio, se una nuova parte di dati sulle merci viene inserita in una cella, l’evento viene attivato. Tuttavia, se una formula viene ricalcolata e viene visualizzato un nuovo risultato di quella formula, l’evento non viene attivato. Perché?

Perché la formula stessa non è cambiata; era solo il risultato della formula (ciò che viene visualizzato) che è stato modificato.

Una volta attivato l’evento Worksheet_Change, la macro può fare tutto ciò che vuoi, inclusa la visualizzazione del tuo messaggio. Per questo esempio, supponiamo che l’intervallo da controllare sia A1: C5 (qui è dove vengono inseriti i dati sulla merce) e che il criterio su cui vuoi attivare il messaggio sia che la media dell’intervallo sia 5. Se il contenuto di qualsiasi cella nell’intervallo viene modificata e la media dei valori nell’intervallo è 5, quindi viene visualizzato un messaggio.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim rng As Range     Set rng = Range("A1:C5")

If Not Intersect(Target, rng) Is Nothing Then         If Application.WorksheetFunction. _           Average(rng) = 5 Then             MsgBox "The average of " & _               rng.Address & " = 5"

End If     End If     Set rng = Nothing End Sub

È importante che questa macro venga inserita nell’oggetto di lavoro per il foglio di lavoro che si desidera monitorare. Quando visualizzi l’editor VBA, fai clic con il pulsante destro del mouse sul foglio di lavoro desiderato nell’area Esplora progetti, quindi scegli Visualizza codice dal menu contestuale risultante. Questa finestra del codice è dove si inserisce la macro.

La macro, ancora una volta, viene attivata ogni volta che viene apportata una modifica in qualsiasi punto del foglio di lavoro. La macro utilizza quindi la funzione di intersezione per determinare se la modifica si è verificata all’interno dell’intervallo A1: C5 desiderato. In caso affermativo, viene controllata la media dell’intervallo e il messaggio visualizzato se il risultato è 5.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2906) si applica a Microsoft Excel 97, 2000, 2002 e 2003.