Salir De Userform Vba Excel

7 min read Oct 13, 2024
Salir De Userform Vba Excel

¿Cómo Salir de un UserForm en VBA Excel?

A menudo, al trabajar con UserForms en VBA Excel, necesitarás encontrar una manera de salir del formulario. Esto puede ser necesario por varias razones, como cuando el usuario ha completado la tarea para la que se creó el formulario o cuando se necesita cancelar la operación actual.

¿Cómo cerrar un UserForm en VBA Excel?

Existen varias formas de cerrar un UserForm en VBA Excel. A continuación se presentan las más comunes:

1. Utilizando el botón "Cerrar"

La forma más sencilla de cerrar un UserForm es utilizando el botón "Cerrar" que se encuentra en la esquina superior derecha del formulario. Este botón está predefinido y estará disponible en todos los UserForms. Al hacer clic en este botón, el UserForm se cerrará y el control volverá al libro de trabajo.

2. Usando el método "Unload"

El método "Unload" permite cerrar un UserForm de forma programada. Se utiliza dentro del código VBA del UserForm. Por ejemplo, si quieres cerrar el UserForm al hacer clic en un botón llamado "Cancelar", puedes usar el siguiente código:

Private Sub Cancelar_Click()
    Unload Me
End Sub

En este código, Me se refiere al UserForm actual.

3. Cerrando el UserForm desde otro módulo

También puedes cerrar un UserForm desde otro módulo de VBA. Por ejemplo, si tienes un botón en una hoja de cálculo que debería cerrar el UserForm, puedes utilizar el siguiente código:

Sub CerrarUserForm()
    Unload UserForm1 'Reemplaza "UserForm1" con el nombre de tu UserForm
End Sub

4. Usando el método "Hide"

El método "Hide" oculta el UserForm sin cerrarlo por completo. Esto puede ser útil si deseas ocultar temporalmente el UserForm y luego volver a mostrarlo más tarde. Por ejemplo, si quieres mostrar un UserForm solo después de que el usuario complete una acción específica, puedes usar el siguiente código:

Private Sub UserForm_Initialize()
    Me.Hide 'Oculta el UserForm al iniciarse
End Sub

5. Cerrar el UserForm al presionar la tecla "ESC"

Puedes configurar el UserForm para que se cierre al presionar la tecla "ESC". Para hacerlo, debes agregar el siguiente código en el evento "KeyDown" del UserForm:

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 27 Then 'Si se presiona la tecla ESC (código 27)
        Unload Me 'Cierra el UserForm
    End If
End Sub

6. Cerrar el UserForm desde otro procedimiento

Puedes llamar a un procedimiento que cierre el UserForm desde otro procedimiento VBA. Esto puede ser útil si necesitas cerrar el UserForm desde un evento diferente, como al cambiar de hoja de cálculo. Por ejemplo, puedes crear un procedimiento llamado CerrarForm que cierre el UserForm:

Sub CerrarForm()
    Unload UserForm1 'Reemplaza "UserForm1" con el nombre de tu UserForm
End Sub

Y luego llamar a este procedimiento desde otro evento:

Private Sub Worksheet_Change(ByVal Target As Range)
    Call CerrarForm 'Llama al procedimiento CerrarForm
End Sub

Consejos para salir correctamente de un UserForm:

  • Siempre guarda los cambios: Antes de cerrar un UserForm, asegúrate de que todos los cambios se hayan guardado correctamente.
  • Valida los datos: Si el UserForm contiene datos que necesitan ser validados, asegúrate de que se realice la validación antes de cerrar el UserForm.
  • Libera recursos: Si el UserForm utiliza recursos como objetos ActiveX, asegúrate de liberar estos recursos antes de cerrar el UserForm.
  • Maneja errores: Es recomendable utilizar el bloque On Error Resume Next para evitar errores inesperados al cerrar el UserForm.

Ejemplo práctico:

Supón que tienes un UserForm para ingresar el nombre y la edad de un usuario. Si el usuario presiona el botón "Aceptar", el UserForm debe cerrarse y mostrar un mensaje con los datos ingresados.

Private Sub Aceptar_Click()
    Dim nombre As String
    Dim edad As Integer

    nombre = TextBox1.Text
    edad = Val(TextBox2.Text)

    MsgBox ("Nombre: " & nombre & vbCrLf & "Edad: " & edad)

    Unload Me
End Sub

Conclusión

Cerrar un UserForm en VBA Excel es una tarea sencilla. Existen varias formas de hacerlo, desde utilizar el botón "Cerrar" hasta programar el cierre desde el código VBA. Al elegir el método más adecuado para tu situación, asegúrate de guardar los cambios, validar los datos, liberar recursos y manejar errores para un cierre exitoso.

Featured Posts