¿ Existe un evento que se ejecute justo antes de guardar un fichero Excel ? (BeforeSave no sirve)

09/11/2005 - 10:15 por Luis Garcia | Informe spam
Hola al grupo:

Necesito justo antes de que se guarde un fichero excel guardar una
'informacion', y no se puede hacer,
al menos, no lo he conseguido en XL2000.

Evento BeforeSave(SaveAsUi = False)
se ejecuta justo antes de guardar
!!! Ok !!!

Evento BeforeSave(SaveAsUI = True)
se ejecuta antes de preguntar al usuario el 'SaveAS', el cual puede
pulsar Cancelar
!!! No me sirve !!!
SI pulsa Cancelar => guardo información FALSA (el fichero no se ha
grabado)
SI guarda con otro nombre => no tengo ese nombre (no lo puedo
guardar en la 'informacion')

Ademas, al cerrar el fichero (por menú o ventana), no ejecuta el BeforeSave,
sino que se ejecuta el BeforeClose.

Evento BeforeClose()
se ejecuta antes de preguntar al usuario "¿Grabar? Si, No, Cancel", por
lo que estoy igual antes.

¿ Alguna idea para hacer un 'BeforeSave real' o me he dejado algo?

Saludos
 

Leer las respuestas

#1 Héctor Miguel
09/11/2005 - 23:19 | Informe spam
hola, Luis !

Necesito justo antes de que se guarde un fichero excel guardar una 'informacion'
y no se puede hacer,al menos, no lo he conseguido en XL2000.
Evento BeforeSave(SaveAsUi = False) se ejecuta justo antes de guardar Ok !!!
Evento BeforeSave(SaveAsUI = True) se ejecuta antes de preguntar al usuario el 'SaveAS', el cual puede pulsar Cancelar
No me sirve !!!
SI pulsa Cancelar => guardo informacion FALSA (el fichero no se ha grabado)
SI guarda con otro nombre => no tengo ese nombre (no lo puedo guardar en la 'informacion')
Ademas, al cerrar el fichero (por menú o ventana), no ejecuta el BeforeSave, sino que se ejecuta el BeforeClose.
Evento BeforeClose() se ejecuta antes de preguntar al usuario "¿Grabar? Si, No, Cancel", por lo que estoy igual antes.
Alguna idea para hacer un 'BeforeSave real' o me he dejado algo?



1) el evento '_beforesave' ES -precisamente- el que 'ocurre' JUSTO ANTES de que un archivo sea 'guardado' [sin embargo]...
a) el usuario puede 'cancelar' [a voluntad] si continua o no la grabacion [tal como ya lo has comprobado]
b) puede ser 'disparado' -al menos- de tres formas...
1) al cerrar el libro [o la sesion] SIEMPRE Y CUANDO el archivo hubiera 'sufrido modificaciones' <= OJO
2) si es el usuario quien directamente ejecuta un comando de guardado [menus, atajo, boton de herramientas o macro]
3) si el usuario [o una macro] hace un 'guardar como' [para cambiar el nombre y/o la ubicacion de 'ese' archvo]
c) ya Manuel Romero te ha explicado el significado del SaveAsUI = True/false] :))

2) [aparentemente] lo que necesitas NO es un 'beforesave'... sino un 'aftersave' [que no existe... hay que 'fabricarlo'] ;)
-> por lo que... [definitivamente]...si te has 'dejado algo' :))
[p.e.] en la informacion que necesitas guardar [una vez 'confirmado' que el archvo SI sa va a guardar... o SE GUARDO]...
-> que 'pinta' tiene el -posible- 'nuevo' nombre del archivo [en caso de que el usuario haga un 'guardar como...'] ???

3) si necesitas 'administrar' algun procedimiento que 'dependa' de un guardado 'real y efectivo'...
visita en la pagina de John Walkenbach...
-> Handling the Workbook BeforeClose Event: http://j-walk.com/ss/excel/tips/tip78.htm

4) para conocer el orden en que los eventos son 'disparados'... visita la pagina de Charles H. Pearson (Chip Pearson)...
-> Event Procedures In Microsoft Excel97: http://www.cpearson.com/excel/events.htm
en el ultimo tercio de esa pagina encuentras una seccion llamada: Order Of Event Procedures

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares