Saltar al contenido

Ejecutar formularios modal sin afectar otros libros abiertos


Recommended Posts

Buen día

Señores tengo una duda, actualmente tengo una macro que se ejecuta formularios al abrir un documento de Excel 2003, todos los formularios se ejecutan correctamente, pero acá es donde tengo la duda, ¿hay alguna forma que si al ejecutar el formulario modal este no me afecte el resto de libros abiertos? Me explico, si tengo los formularios configurados en forma modal, procedo a ejecutar la macro (prueba.xlsm) y luego de esto voy a abrir otros documentos (libro1.xlsx, libro2.xlsx... etc.) los abre pero no puedo acceder a ellos, es decir, todos los libros quedan bloqueados, ya probe igual en dejar el formulario en forma "no modal", me deja abrir los archivos e igual acceder a ellos pero el problema esta en que el formulario se sigue mostrando con todos los libros que abra. En otras palabras necesito ejecutar en forma independiente o que el formulario se oculte al llamar otro documento.

Quedo muy atento a sus indicaciones y ayudas que me puedan prestar.

De antemano mil gracias.

Enlace a comentario
Compartir con otras webs

Gracias Macro Antonio por su oportuna respuesta, pero no existe otra forma diferente de abrir un archivo? Es decir, que no se utilice un boton? es que muchos de los archivos que me llegan es por correo y son documentos de excel y pues con esta herramienta que indicas me haces que el trabajo se me haga un poco mas complejo porque deberia guardar la info y despues abrirla.

Enlace a comentario
Compartir con otras webs

.

Imagino que solo deberías abrir en una instancia nueva el segundo archivo, a partir de ahí supongo que los archivos se abrirían en la última instancia abierta, y si no, hazlo al revés.

Pero vas a necesitar dos instancias seguro.

.

Enlace a comentario
Compartir con otras webs

.

Prueba poniendo estas líneas en Thosworkbook del libro con el formulario.

Suponiendo que el formulario se llama Userform1:



Private Sub Workbook_Activate()
UserForm1.Show
End Sub

Private Sub Workbook_Deactivate()
UserForm1.Hide
End Sub

[/CODE]

.l

Enlace a comentario
Compartir con otras webs

Huyy vale... genial.... pero con esto me surge una ultima duda... hay alguna forma de saber que form tengo activo en el momento de ingresar a otro libro de Excel? Esto debido a que la macro uso varios form's y al cargar nuevamente la macro lo ideal seria que me mostrara el form activo en ese momento. Gracias.

Enlace a comentario
Compartir con otras webs

_______________________________________________

En un módulo:

Public Visualizar As Object[/CODE]

[indent][indent][b][u]En Thisworkbook:

[/u][/b][/indent]

[/indent]

[CODE]Private Sub Workbook_Activate(): On Error Resume Next
If Not Visualizar Is Nothing = True Then Visualizar.Show
End Sub
'--
Private Sub Workbook_Deactivate()
For Each Formulario In UserForms
If Formulario.Visible = True Then
Set Visualizar = Formulario
Formulario.Hide
End If
Next
End Sub[/CODE]

[indent][indent][b][u]En cada uno de los formularios:

[/u][/b][/indent]

[/indent]

[CODE]Private Sub UserForm_Terminate()
Set Visualizar = Nothing
End Sub[/CODE]

________________________________________________

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.