Cual es el Evento (vba) al hacer Click en una celda de Excel

Necesito saber si existe algún evento que me pueda detectar cuando le doy click a una celda en específico, hasta el momento he utilizado el evento:

Worksheet_SelectionChange(ByVal Target As Range)

Pero esto me funciona en parte, ya que solo se activa cuando "Cambio de selección" y no cuando doy click, es decir:

Usando "Worksheet_SelectionChange(ByVal Target As Range)" cuando tengo seleccionada la celda "A1" y hago click en "A2", el evento se activa perfectamente, el problema esta en que ya seleccionado "A2" y vuelvo a darle click en "A2" el evento no se activa (porque no estoy cambiando de selección).

Entonces lo que necesito es que cuando yo haga Click (tanto para cambio como click en la misma celda) se active un evento.

De ante mano le agradezco la ayuda que puedan brindarme al respecto.

Nota: Prove con Worksheet_BeforeDoubleClick y tampoco me funciona como yo quiero.

Respuesta
1

Existen 2 eventos: BeforeDoubleclick y BeforeRightClick.

Si el primero no te funciona 'como tu quieres' entonces quizás debas explicar porqué no.

Te dejo un ejemplo con el 2do evento, como opcional coloqué algunas condiciones:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 2 Then Exit Sub 'evita cierta columna
If Target.Row < 4 Then Exit Sub 'evita ciertas filas
Call tu_macro
End Sub

Sdos y si esto tampoco resuelve tu problema explica un poco qué macro o qué tarea se debe realizar al clic de la celda.

Buenas tardes Amiga,

Los eventos no me sirven, le explico:

BeforeDoubleclick= Se activa al hacer doble click en una celda (yo necesito un evento que se active con tan solo 1 [un] Click)

BeforeRightClick = Se Activa con el botón derecho o anticlick (yo necesito un evento que se active con el Click izq del ratón)

SelectionChange = Se Activa al cambiar de selección de celdas (yo necesito un evento que se active aparte de cuando ocurra un cambio, cuando no se haga el cambio porque le estoy dando click a la misma celda)

En definitiva sería algo así...

Private Sub Worksheet_Click(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = "$A$2" Then
        Call mi_macro
    End If
End Sub

Entonces ya sabes que no se puede, que no existe el evento Click, lo más parecido es el BeforeRightClick como te mencioné.

Sdos!

La valoración 'buena' se la debes aplicar a Excel... no me hagas responsable si el programa no te ofrece lo que necesitas ;(

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas