Cerrar dos libros guardando cambios solo en uno y salir de la aplicación
Una vez más, necesito vuestra ayuda. Yo tenía un libro llamado "Control horario" en el que, para salir, le había colocado una imagen a la que le había asignado una macro ("sal"). Esta macro abría un formulario ("cierra") con el siguiente código colocado en el evento "Initialize":
Private Sub UserForm_Initialize()
Beep
Application. OnTime Now + TimeValue("00:00:04"), "cerrar"
End Sub
Como veis, llamo a una nueva macro "cerrar" con el siguiente código:
Sub cerrar()
Unload cierra
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("mes").Select
If Sheets("mes").Range("título").Value = "" Then
Application.DisplayAlerts = True
Sheets("calendario").Select
Application.Quit
Application.EnableEvents = False
ThisWorkbook.Close savechanges:=1
Application.EnableEvents = True
Else
Application.EnableEvents = False
Range("controlmes").ClearContents
Application.EnableEvents = True
Range("Título") = ""
Range("o42").ClearContents
Range("p42").ClearContents
Sheets("calendario").Select
Application.DisplayAlerts = True
Application.Quit
Application.EnableEvents = False
ThisWorkbook.Close savechanges:=1
Application.EnableEvents = True
End If
End sub
Esto funcionaba perfectamente, pero, como quiera que este libro lo usarán varios compañeros y NO puede estar compartido, sino que cada compañero tendrá un libro en su ordenador para guardar SUS horarios de entrada y salida, pensé en crear otro libro con todo el código para, si tuviese que modificarlo, hacerlo solo en ese libro ("códigolibro").
Para ello, cuando abro el formulario "control horario" tengo un código auto_open que es el siguiente:
Sub auto_open
Workbooks. Open ThisWorkbook. Path & "\Códigolibro.xlsm" 'así abre el libro esté en la unidad que esté.
Application.Run "'códigolibro.xlsm'!abrir"
End sub
De este modo abro el libro de código y permanece abierto (en la barra de tareas), de modo que en el resto de macros o códigos solo debo poner Application. Run "'códigolibro.xlsm'!nombre de la macro" . El problema se plantea al salir: He creado una macro en el libro "códigolibro" llamada "Salir" y le he puesto el código que antes tenía en la macro "Sal" del libro "Control horario", cambiando el de ésta última por Application. Run "'códigolibro.xlsm'!Salir" y... Sólo funciona a medias... Me cierra un libro, pero me pregunta si deseo guardar los datos del otro y además, no sale de la aplicación.
Lo que yo quiero es que:
1º Me cierre el libro "Control horario" tal y como lo hacía antes (borrando los contenidos que le marcaba y guardando cambios SIN PREGUNTAR NADA.
2º Cierre el libro "códigolibro" SIN GUARDAR NINGÚN CAMBIO (por si acaso) Y SIN PREGUNTAR.
3º Salga de la aplicación.
¿A alguien se le ocurre cómo podría hacerlo?