es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo mostrar un formulario de usuario y esperar a que se ejecute el código, al mismo tiempo que tengo acceso a otros documentos?

En Word VBA, quiero mostrar un formulario de usuario e ingresar información en cuadros de texto y casillas de verificación. Sin embargo, me gustaría poder acceder y desplazarme en otros documentos de Word.

Quiero que aparezca un formulario de usuario, insertar texto y marcar casillas de verificación, poder desplazarme en otros documentos y luego presionar un botón de comando para ocultar el formulario de usuario y ejecutar el resto del código.

Establecí la función ShowModal del formulario de usuario en False. Esto me ayudó a acceder a otros documentos y poder desplazarme en ellos. Sin embargo, mi código seguirá ejecutándose, por lo que no puedo usar la información en los cuadros de texto y casillas de verificación del formulario de usuario, ni siquiera permitir que un usuario ingrese información en los cuadros de texto.

Un script simple para mostrar este concepto.

Sub testing()
UserForm1.Show
MsgBox ("Hola, " + UserForm1.TextBox1.Value)
Unload UserForm1
End Sub

El formulario de usuario se muestra a continuación.
Imagen de formulario de usuario

Quiero abrir el formulario de usuario, ingresar un nombre mientras puedo hacer clic en otro documento de Word, luego hacer clic en el botón OK. Si lo cambio a Userform1.Show vbModeless, el cuadro de mensaje mostrará “Hola,” y luego cerrará el formulario de usuario enseguida.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr la funcionalidad deseada de poder acceder y desplazarse en otros documentos de Word mientras aún se puede utilizar y manipular la información en el formulario de usuario, se debe utilizar Userform1.Show vbModeless en lugar de Userform1.Show. Esto permitirá al usuario interactuar con el formulario y otros documentos simultáneamente. Además, el botón de comando en el formulario de usuario debe tener el código para ejecutar el resto del código y ocultar el formulario de usuario, como Unload Userform1. De esta manera, la información en los cuadros de texto y casillas de verificación se puede utilizar y el usuario aún puede acceder y desplazarse en otros documentos de Word.

    El script modificado sería:

    Sub testing()
    UserForm1.Show vbModeless
    End Sub
    

    Y el botón OK en el formulario de usuario debería tener el código:

    Private Sub CommandButton1_Click()
      'Insertar código para ejecutar el resto de la funcionalidad deseada
      Unload Me 'Ocultar el formulario de usuario
    End Sub
    

Comments are closed.