¿Cómo puedo DESACTIVAR el control de cierre [X] de un libro de Excel habilitado para macros?

Mediante el código asociado al evento QueryClose que copio a continuación desactivo el control de cierre de un UserForm:

If CloseMode <> vbFormControlMenu Then
    Cancel = 0
Else
    Cancel = 1
    MsgBox "                      CONTROL DESACTIVADO." & vbCrLf & vbCrLf & "   Si lo que pretende es salir del formulario hágalo haciendo clic en el botón de SALIR.", vbInformation, "MI APLIACIÓN"
End If

¿Cómo puedo -si se puede, claro- desactivar el botón de cierre del archivo general, obligando con ello al usuario a que salga haciendo clic en el CommandButton  específicamente dispuesto para salir de la aplicación?

1 respuesta

Respuesta
1

Visita:

Cursos de Excel y Macros

----- --

Pon este código en los eventos de ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Cancel = True
  MsgBox "Salir presionando el botón"
End Sub

----- --

Recomendaciones:

curso de excel. Funcion buscarv. - YouTube

Curso de macros. Consejos para empezar a programar. - YouTube

Curso de macros. Declarar variables en vba excel. - YouTube

Sal u dos Dante Amor

Gracias por tu respuesta, Dante, he copiado el código que me dices en el evento BeforeClose del objeto WorkBook, pero dado que en el CommandButton con el que pretendo se salga de la aplicación tiene el código: 

ActiveWorkbook.Save
Application.Quit

... el usuario recibe el mensaje asociado al evento BeforeClose... 

Pon el siguiente código en ThisWorkbook.

Debes poner la variable Public al inicio de todo el código:

Public salir As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If salir = True Then
    Cancel = False
    Exit Sub
  End If
  Cancel = True
  MsgBox "Salir presionando el botón"
End Sub

En la macro del botón pon lo siguiente:

Sub salida()
  ThisWorkbook.salir = True
  ActiveWorkbook. Save
  Application. Quit
End Sub

----- --

Recomendaciones:

Curso de Macros y Matrices en Excel. #excel #macro - YouTube

Curso de macros. Userform uso de showmodal. - YouTube

Sal u dos Dante Amor

Perdona mi torpeza Dante  :) , pero respecto a la última parte de tu respuesta, cuando dices "En la macro del botón pon lo siguiente:"... debo asociar el código que me apuntas a un evento del CommandButton, ¿no? ¿A cual? He probado con el AlHacerClick pero el editor de VBA me manda el mensaje de "No se encontró el dato miembro" y me pinta de amarillo la línea: 

 ThisWorkbook.salir = True

Revisa las siguiente imágenes.

El primer código en los eventos de Thisworkbook:

El segundo código en el módulo de la hoja donde tienes tu botón o commandbutton, me refiero al botón que quieres presionar para cerrar excel:

Te anexo mi archivo para que veas en dónde están los códigos.

https://drive.google.com/file/d/1mGVBHx0QGB-jjf_eGodiocwjyRnnilmX/view?usp=sharing 

-------- --

Excel vba dictionary parte 1 - YouTube

Curso de Macros y Matrices en Excel. Ejercicio 1 - YouTube

Curso de Macros y Matrices en Excel. #excel #macro - YouTube

Sal u dos Dante Amor

¡Gracias, Dante.

Tema zanjado.

P.S.- Para cerrar los temas de 'mi aplicación' -por ahora... :-) -  [es la primera que desarrollo en Excel, hasta ahora me había encerrado en Access y he de decirte que Excel me ha entusiasmado!!!], para cerrar temas, decía, voy a plantear una cuestión aparte, échale un vistazo porfa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas