Wendy tiene una hoja de trabajo que contiene bastantes datos, con los datos principales en el rango C3: P312. Le gustaría tener una macro que, si hace clic en una celda de este rango de datos, ponga una «x» en la celda.

No hay ningún evento que Excel pueda reconocer como un «clic» en una celda.

Quizás el evento más cercano es el evento SelectionChange, que se activa cada vez que cambia la selección de celda. Luego, el controlador de eventos podría verificar para asegurarse de que la selección de celda esté dentro del rango C3: P312 y luego colocar una «x» en la celda si lo está. El siguiente controlador de eventos hará eso:

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

Sin embargo, existe un problema con este enfoque: el evento SelectionChange no solo se activará cuando haga clic en una celda diferente, sino que también se activará si usa el teclado para pasar de una celda a otra en la hoja de trabajo. Esto significa que si usa el teclado para moverse por la hoja de trabajo, dejará una cola de caracteres «x» en cada celda que transite.

Una forma de evitar esto es cambiar el evento que activa la verificación y el cambio de las celdas. Si bien Excel no tiene un evento de «clic», hay un evento de «doble clic». Esto significa que puede cambiar la celda en la que hace doble clic, como se muestra aquí:

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: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (11681) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.

Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Putting_an_X_in_a_Clicked_Cell [Colocando una X en una celda donde se hizo clic].