Salir sin que pregunte si deseo guardar

5 envíos / 0 nuevos
Último envío
Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 1 mes
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Salir sin que pregunte si deseo guardar

Hola a todos:

Regreso despues de mucho tiempo al foro... y evidentemente es en busca de ayuda...

En este caso se trata de lo siguiente:

Tengo una pequeña aplicacion en Excel desde hace mucho tiempo que funciona sin mayores problemas.

En una de las Hojas, tengo un Boton al que llamo Salir, y que tienre asociado este Macro:

________________________________

ActiveWorkbook. Save

Application.Quit

_________________________________

Sencillamente, me graba los cambios realizados, y sale del Excel, sin preguntar si deseo grabar los cambios.

Hasta aqui todo bien... Funciona como se desea.

A esta aplicacion, ultimamente he querido hacerle "desaparecer" la cinta de Excel con sus menus, y la Barra de fórmulas.

Lo he hecho vinculando al Open WorkBook el macro siguiente:

__________________________________

Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", False)"

Application.DisplayFormulaBar = False

___________________________________

Y efectivamente, en la aplicacion desaparecen tanto la cinta del Excel con sus menus, como la barra de formulas.

Ahora viene la "cosa".

A partir de este momento, cuando se le da al botón de Salir, graba los posibles cambios y a continuación al ejecutar lo orden de salir, Application.Quit, sale la ventanita de "Desea guardar los cambios? Si, No, Cancelar.

Lo curioso es que los cambios ya están grabados, porque aunque se le diga que No se quieren grabar, la aplicación sale del Excel pero los cambios ya están grabados.

He intentado varias cosas... (entre ellas, incluir la linea en el macro de salida: DisplayAlerts = False) pero ninguna ha conseguido eliminar la pregunta.

Alguna pista?

Gracias anticipadas.

Jose Luis Casla

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 12 horas 28 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Una vez me ocurrió algo

Una vez me ocurrió algo parecido que preguntaba si quería guardar cambios de otro libro que también tenía abierto

Al cerrar Excel pregunta si se quiere guardar todo lo que esté abierto, puede ser la plantilla de macros personal, algún complemento que esté cargado,...

En la web de ayuda de Microsoft sugieren guardar todos los libros y luego cerrar, aunque imagino que ya lo habrás probado:

For Each w In Application.Workbooks
w.Save
Next w
Application.Quit

Pero si lo que hace que pregunte es el haber ocultado las barras de la interfaz (misterios de Excel), prueba a mostrarlas justo antes de cerrar

 

------
Ya sé Excel, pero necesito más.

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 1 mes
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Hola Paco:Muchas gracias, una

Hola Paco:

Muchas gracias, una vez más, por la rapidez en atender y responder a las solicitudes de ayuda...

Efectivamente, entre las muchas pruebas que he hecho para conseguir ( "infructuosamente") salir sin que me lance la preguntita de marras: Desea guardar los cambios...? estan estas: la que tu me has sugerido... cerrar todos los posibles libros abiertos antes de lanzar la Application.Quit, o la de forzar a mostrar las bvarras del interfaz antes de lanzar la Aplicattion.Quit

Pero nada. No hay manera de evitar la preguntita...

La conclusion a la que estoy llegando es la de que "esto" forma parte de los "misterios de Excel"

Evidentemente, por lo menos en mi caso, no es un problema mayor... Sencillamente lo tengo diseñado asi para evitar confusiones en el usuario mas desprevenido, que a veces despues de haber trabajado una mañana con el programa, respomda que no quiere Guardar al Salir... Luego vienen las preguntas: Oye que puedo hacer para recuperar lo que se me ha perdido... ? :) :) :)

Como decia en mi pregunta inicial, eso ha trabajado siempre bien, antes de hacer desaparecer las barras del interfaz, asi que estoy sopesando lo de prescindir de  hacer desaparecerlas.

Paco... muchas gracias. Da gusto que incluso con el tema de actualidad que nos envuelve, "el Covid", no hay "listas de espera", en tus respuestas...

Saludos cordiales.

Jose Luis Casla

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 1 mes
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Hola, de nuevo:He dado una

Hola, de nuevo:

He dado una solución al "problema" que no sé si es la más correcta, pero parece que funciona.

Se trata de modificar el macro del botón de "Salir Grabando",  sustituyendolo por éste:

________________________________

Application.EnableEvents = False Application.DisplayAlerts = False If Application.Workbooks.Count = 1 Then 'Close Excel application ThisWorkbook.Save Application.Quit Else 'Close the active workbook With ActiveWorkbook .Close Savechanges:=True End With End If
___________________________
No tengo los conocimientos suficientes como para "explicar concienzudamente" el por qué funciona... pero funciona... :) :) :)
Dejo a los expertos, la posible explicación.
Saludos cordiales a todos y gracias por el espacio que se nos ofrece para estas cuestiones.
Jose Luis Casla

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 1 mes
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Cerrando el tema
Hola a todos:
Creo que con este aporte se puede dar por terminado el recorrido y dejar cerrado este Tema menor...
El Macro ha quedado así (y funciona):

Sub Salir_Grabando()
Application.EnableEvents = False
Application.DisplayAlerts = False
If Application.Workbooks.Count = 1 Then 'Close Excel application application
ThisWorkbook.Save
Application.Quit
Else 'Close the active workbook
With ActiveWorkbook
.Close Savechanges:=True
End With
End If
End Sub

Dandole vueltas he encontrado la explicacion de por que ahora la macro se ejecuta correctamente, y efectivamente sale guardando los datos y cierra el Excel sin que aparezca el mensaje de Si quiere guardar los cambios, SI, NO, CANCELAR.
La razón está en la linea del Macro


Application.EnableEvents = False

Esto hace que se deshabiliten los eventos antes de guardar el fichero para que no se produzca el evento BeforeSalve.

Como digo yo, los problemas tienen de bueno, que nos permiten aprender...
Agradezco la posibilidad que nos ofrece este Foro, y me alegrare si a alguien con algun problemilla parecido al mio, le ha servido este aporte.
Saludos cordiales.
Jose Luis Casla