Detectar cambios en la hoja

14/04/2004 - 20:09 por BlackDraGoN | Informe spam
Hola a todos:

Tengo una hoja en la cual he insertado 2 botones, "salir guardando" y "salir
sin guardar", quisiera saber cuales son las funciones o comandos encargados
de guardar todo o descartar todo.

Hay alguna forma de evitar que cierren la hoja pulsando sobre la "x" de la
ventana.

Y por ultimo cuando se pulsa uno de los botones quisiera cerrar la hoja y
salir de Excel, como puedo hacelo.


Muchas Gracias por adelantado.
 

Leer las respuestas

#1 Héctor Miguel
14/04/2004 - 21:30 | Informe spam
hola ;)

... hoja ... 2 botones, "salir guardando" y "salir sin guardar"
... cuales son las funciones o comandos encargados de guardar todo o descartar todo.


_________
'dependiendo' de si los botones los insertaste con la barra de herramientas 'formularios' o 'cuadro de controles'...
[boton de formularios] desde un modulo de codigo 'normal'...
=> Workbooks("Nombre del libro").Close SaveChanges:=False ' o True ???
=> FALLARA si el usuario le cambia de nombre al libro y no 'coincide' con el 'usado' por la macro
[boton de cuacro de controles] desde el modulo de codigo de 'la hoja'...
=> ThisWorkbook.Close SaveChanges:=True ' o False ???

... alguna forma de evitar que cierren la hoja pulsando sobre la "x" de la ventana.


_________
la siguiente instruccion 'impide' al usuario 'cerrar' el libro =>tampoco podra 'terminar' la sesion de excel< en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
End Sub
=> para 'poder salir' [inclusive 'tu mismo'] de excel, deberas 'proporcionar' alguna 'clave o permiso' de tipo 'boolean'
'puesta' como 'public' en la seccion de declaraciones de un modulo de codigo 'normal' [p.e. 'SePuedeSalir']
cambiarias la instrucion a: => If Not SePuedeSalir Then Cancel = True < y 'darias permiso de salir' en el codigo del boton [p.e.]
:::::
SePuedeSalir = True
ThisWorkbook.Close False ' o True si quieres o no guardar los cambios
:::::

... por ultimo cuando se pulsa uno de los botones quisiera cerrar la hoja y salir de Excel [...]


________
usando 'Application.Quit' ANTES de 'cerrar' tu libro [p.e.]:

1.- la siguiente forma, cierra el libro [guardar cambios es opcional], pero... NO cierra la aplicacion :((
Sub Cerrar_Todo()
ThisWorkbook.Close False ' o True para salvar los cambios '
Application.Quit ' <== esta línea YA NO se ejecuta :(( '
End Sub

2.- pero... si inviertes el orden de los factores, SI funciona :))
Sub Cerrar_Todo()
Application.Quit
ThisWorkbook.Close False ' ó True para salvar los cambios '
End Sub

Nota: si hay varios libros abiertos y alguno/s ha/n tenido cambios, se necesitara algo +/- como lo siguiente:
Sub Cerrar_Todo()
Dim Libro as Workbook
For Each Libro In Application.Workbooks
' alguna rutina para 'detectar' cual es el libro [excluyendo a este libro] y decidir si se guardan [o no] los cambios '
Next
Application.Quit
ThisWorkbook.Close False ' ó True para salvar los cambios '
End Sub

saludos,
hector.

Preguntas similares