Abrir userform celda en excel

Tengo el siguiente código:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Retenciones.Show
End Sub

Que me abre un Userform (Retenciones)cuando hago doble clic en cualquier parte de la hoja activa.

Lo que quiero es quiero que me me abra el userform solo cuando doy doble clic en un rango de la hoja; ejemplo "A2:A10"

1 Respuesta

Respuesta
2

Compañero Jorge, en el siguiente código sólo debes definir el rango que deseas que active el formulario con doble clic.

Solution:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Set Activador = Range("A2:A10") ' También puedes utilizar el nombre de un rango que exista en la hoja activa
    If Not Intersect(Target, Activador) Is Nothing Then
        Retenciones.Show
    End If
End Sub

Explanation:

Lo que se hace es verificar si sí existe intersección (Intersect) entre la celda activa (doble clic) y el rango que muestra el formulario (Activador); es decir, si la celda sobre la que se da doble clic está dentro del rango predeterminado para activar el formulario.


Si te ha servido no olvides calificar. Buen viento y Buena mar.

¡Gracias! Excelente solución  perfecto

Que pena pero ahora me salio otra inquietud relacionada: Tengos dos diferentes rangos en un mismo libro activo, para abrir dos formularios diferente en cada rango, cuando doy doble clic en una celda del rango, pero me sale que hay un nombre ambiguo y no se ejecuta la macro

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True    Set Activador = Range("A15:A5000") ' También puedes utilizar el nombre de un rango que exista en la hoja activa    If Not Intersect(Target, Activador) Is Nothing Then        Conceptos1001.Show    End IfEnd Sub-------------------------------------------------------------------------Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True    Set Activador = Range("k15:k5000") ' También puedes utilizar el nombre de un rango que exista en la hoja activa    If Not Intersect(Target, Activador) Is Nothing Then        Departamentos.Show    End IfEnd Sub

sabes alguna forma de cambiar  doblueclick Worksheet y que tenga el resultado que quiero

Recomiendo abrir otra consulta para esta pregunta. Así será más fácil que otra persona encuentre la solución para este caso.

Aún así...

Ésta sería una solución sencilla y rápida.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Set Activador1 = Range("A15:A5000")
    If Not Intersect(Target, Activador1) Is Nothing Then
        Conceptos1001.Show
    End If
    Set Activador2 = Range("K15:K5000")
    If Not Intersect(Target, Activador2) Is Nothing Then
        Departamentos.Show
    End If
End Sub

Y así vas agregado rangos, de ser necesario.  Ten en cuenta que los rangos no deben cruzarse pues se te abrirían varios formularios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas