Supriyo ha chiesto se esiste un gestore di eventi del mouse in VBA. Vuole un valore inserito in una cella quando si fa clic su quella cella.

Il modo standard per farlo è con l’evento SelectionChange. Ogni volta che la selezione cambia nel foglio di lavoro, viene attivato l’evento. L’evento non si attiva solo quando si fa clic su una cella, ma anche se qualcuno preme un tasto di controllo del cursore che risulta nella selezione di una cella diversa.

Ad esempio, supponiamo che tu voglia che la cella B5 contenga il valore 10 ogni volta che viene selezionata quella cella. Per implementarlo, potresti usare quanto segue:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("B5")) Is Nothing Then _       Range("B5").Value = 10 End Sub

Questo codice viene aggiunto a uno degli oggetti di lavoro nell’area Esplora progetti dell’Editor VB. Fare doppio clic sul foglio di lavoro a cui si desidera applicare il gestore eventi e quindi aggiungere la macro alla finestra del codice risultante.

Quando viene attivato l’evento SelectionChange, l’obiettivo (l’intervallo di celle selezionato) viene passato al gestore. La macro controlla quindi se l’intervallo di destinazione contiene la cella B5 e, in caso affermativo, inserisce il valore 10 nella cella B5. Se vuoi assicurarti che la macro inserisca solo le informazioni in B5 se è selezionato solo B5 (la cella singola), puoi usare questa versione della macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("B5").Address Then _       Range("B5").Value = 10 End Sub

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

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

Questo suggerimento (12514) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: