Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

programar reacciones al cerrar un fichero

Estas en el tema de programar reacciones al cerrar un fichero en el foro de Visual Basic clásico en Foros del Web. Hola gente, utilizo ActiveWindow.Close para cerrar un fichero excel en una macro. Al no haberse guardado se pregunta al usuario si desea guardarlo, con las ...
  #1 (permalink)  
Antiguo 19/04/2008, 10:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
programar reacciones al cerrar un fichero

Hola gente,

utilizo

ActiveWindow.Close

para cerrar un fichero excel en una macro. Al no haberse guardado se pregunta al usuario si desea guardarlo, con las respuestas posibles "si", "no" y "cancelar". En función de la respuesta se deben realizar diferentes acciones. Yo programo:

respuesta = ActiveWindow.Close
If respuesta = X Then


El tema es que no se que poner en la X para cada una de las respuestas. ¿esta bien programado?

Gracias de antemano y saludos
  #2 (permalink)  
Antiguo 22/04/2008, 08:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: programar reacciones al cerrar un fichero

Cita:
Iniciado por herramienta Ver Mensaje
Hola gente,

utilizo

ActiveWindow.Close

para cerrar un fichero excel en una macro. Al no haberse guardado se pregunta al usuario si desea guardarlo, con las respuestas posibles "si", "no" y "cancelar". En función de la respuesta se deben realizar diferentes acciones. Yo programo:

respuesta = ActiveWindow.Close
If respuesta = X Then


El tema es que no se que poner en la X para cada una de las respuestas. ¿esta bien programado?

Gracias de antemano y saludos
Creo que eso no funcionará, pues cuando ejecute ActiveWindow.Close, si el usuario selecciona "sí" o "no" la macro dejará de ejecutarse. No sé para qué necesitas realizar esas acciones. Pero dependiendo de lo que necesitas hacer puedes programarlo en el evento BeforeSave de WorkBook...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/05/2008, 03:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: programar reacciones al cerrar un fichero

Hola David el Grande,

gracias por la respuesta.

Efectivamente al contestar si o no el archivo queda si o no grabado. El problema mio es que en funcion de si el usuario ha decidido grabarlo debo ejecutar un archivo y si no lo ha grabado parar el proceso. Si contesta cancelar se provocar la reaccion pero con Si y No soy incapaz. Respecto al BeforeSave no se lo que es.

¿Es posible hacerlo como pienso?

Gracias de nuevo
  #4 (permalink)  
Antiguo 02/05/2008, 14:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: programar reacciones al cerrar un fichero

Cita:
Iniciado por herramienta Ver Mensaje
Hola David el Grande,

gracias por la respuesta.

Efectivamente al contestar si o no el archivo queda si o no grabado. El problema mio es que en funcion de si el usuario ha decidido grabarlo debo ejecutar un archivo y si no lo ha grabado parar el proceso. Si contesta cancelar se provocar la reaccion pero con Si y No soy incapaz. Respecto al BeforeSave no se lo que es.

¿Es posible hacerlo como pienso?

Gracias de nuevo
Sí, el BeforeSave te servirá para hacer lo que necesitas.
En el menú a la izquierda hay varios objetos bajo el título "Microsoft Excel Objetos", allí selecciona "ThisWorkbook" y copia este código:
Código:
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Aquí programas el código necesario
End Sub
Así, siempre se ejecutará ese código al solicitar que se guarde el Libro.
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:54.