Nosotros | Acceder | Web | Plantillas |

¿Cómo lanzar varios formularios al presionar diferentes celdas de Excel?


Cómo lanzar varios formularios al presionar dos veces una celda en un hoja de Excel, por ejemplo, cómo puedes observar en la imagen inferior, si presionamos dos veces en cualquier celda de la columna B ya nos muestra el formulario 02, pero si presionamos en la columna A se cierra el que teníamos abierto para mostrarse el formulario 01, entonces ¿Cómo lanzar o cerrar formularios dependiendo del tipo de celda que presionemos?, si te interesa aprender de este tema, te invitamos a revisar este artículo que te traemos con todo el código necesario para tal efecto.
El efecto terminado es el siguiente:


Preparando lo necesario

Primero identificamos nuestras columnas a ser utilizadas, en este ejemplo hemos tomado como referencia a la columna A para mostrar el formulario 01 y en toda la columna B para mostrar el formulario 02. En segundo lugar en nuestro editor de Visual Basic insertamos dos formularios.

Códigos a implementar

Básicamente para implementar el código vamos a usar el evento BeforeDoubleClick de la hoja activa. Para eso nos vamos al nombre de la hoja y con doble clic ingresamos dentro de la hoja1, aquí seleccionamos al objeto WorkSheet, luego en la lista de eventos seleccionamos al evento BeforeDoubleClick, es en este evento que estaremos programando una macro para que nos permita lanzar cada formulario en su respectiva columna al presionar dos veces clic en una celda de la columna A o de la columna B. Básicamente este evento BeforeDoubleClick nos permite ejecutar una macro siempre y cuándo se presione dos veces la misma celda de Excel.

Para poder mostrar el formulario 01 en toda la columna A usamos el siguiente código:

If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then 'Restringimos solo a la columna A
  Cancel = True 'Cancelamos la ejecución del código en otras celdas
  UserForm2.Hide 'Cerramos el formulario 02
  UserForm1.Show 'Lanzamos el formulario 01
End If
El código entre el evento BeforeDoubleClick de la hoja de Excel es:


Para poder mostrar el formulario 02 en toda la columna B usamos el siguiente código:

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then 'Restringimos solo a la columna B
  Cancel = True 'Cancelamos la ejecución del código en otras celdas
  UserForm1.Hide 'Cerramos el formulario 01
  UserForm2.Show 'Lanzamos el formulario 02
End If
El código entre el evento BeforeDoubleClick de la hoja de Excel es:


Al juntar el código de los dos formularios tanto para la columna A cómo para la columna B el código implementado final es:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then 'Restringimos solo a la columna A
        Cancel = True 'Cancelamos la ejecución del código en otras celdas
        UserForm1.Hide 'Cerramos el formulario 01
        UserForm2.Show 'Lanzamos el formulario 02
    End If
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
        Cancel = True
        UserForm1.Hide
        UserForm2.Show
    End If
End Sub
Cómo puedes observar es muy sencillo implementar varios formularios en una hoja de Excel y que esos sean mostrados en áreas específicas de la hoja de Excel. Puede ser implementado en varios eventos, no solamente cuándo se haga doble clic en la celda.  
Comparte este Artículo :

Publicar un comentario

 
Soporte : Privacidad | Términos y Condiciones | Cookies
Copyright © Desde el 2022. Dominando Ofimática - Derechos Reservados
Nuestros Proyectos Web Oficial Además de Nuestro Canal
Síguenos en TikTok