Mettere una X in una cella selezionata (Microsoft Excel)
Wendy ha un foglio di lavoro che contiene un bel po ‘di dati, con i dati principali nell’intervallo C3: P312. Vorrebbe avere una macro che, se fa clic su una cella in questo intervallo di dati, inserisca una “x” nella cella.
Non c’è alcun evento che Excel possa riconoscere come un “clic” su una cella.
Forse l’evento più vicino è l’evento SelectionChange, che viene attivato ogni volta che la selezione della cella cambia. Il gestore di eventi potrebbe quindi verificare che la selezione della cella sia compresa nell’intervallo C3: P312 e quindi inserire una “x” nella cella, se lo è. Il seguente gestore di eventi lo farà:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing End Sub
Tuttavia, questo approccio presenta un problema: non solo si attiva l’evento SelectionChange quando si fa clic su una cella diversa, ma si attiva anche se si utilizza la tastiera per spostarsi da una cella all’altra nel foglio di lavoro. Ciò significa che se utilizzi la tastiera per spostarti nel foglio di lavoro, lascerai una scia di caratteri “x” in ogni cella in cui transiti.
Un modo per aggirare questo è cambiare l’evento che attiva il controllo e il cambiamento delle celle. Sebbene Excel non abbia alcun evento “clic”, esiste un evento “doppio clic”. Ciò significa che puoi cambiare la cella su cui fai doppio clic, come mostrato qui:
Private Sub Worksheet_BeforeDoubleClick( _ ByVal Target As Range, Cancel As Boolean) Dim rInt As Range Dim rCell As Range Set rInt = Intersect(Target, Range("C3:P312")) If Not rInt Is Nothing Then For Each rCell In rInt rCell.Value = "x" Next End If Set rInt = Nothing Set rCell = Nothing Cancel = True 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 (3378) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: