none
No cierra el Excel RRS feed

  • Pregunta

  • Hola

    Estoy desarrollando un proyecto en WPF-VB.net. El mismo trabaja con una planilla Excel que es invocada así:

     Public APLICACION As New Excel.Application

    Dim ruta As String = "D:\1 VS\1 Proyectos\ElDia"
            ruta = ruta & "\twilight.xls"
            APLICACION.Workbooks.Open(ruta)

    Este libro es consultado (se lee y se escribe en él) pero el operador nunca lo ve y no es necesario guardarlo. Solo es una referencia en donde hay varias macros que realizan operaciones matemáticas complejas usando datos que son colocados con el vb. net y devuelve resultados que son leidos por el vb.net.

    Los problemas son dos.

    1) quisiera que la ruta de acceso fuera relativa a mi aplicación y no explicita a una carpeta de  mi pc

    2)no encuentro la forma de cerrar el Excel. Si hago

    APLICACION.Close

    Se detiene todo a la espera de que decida si guardar los cambios, cosa que no me interesa, con  un msg.box clasico que está escondido y de dificil acceso.

    Si salgo de mi aplicacion sin mas el Excel queda abierto.

    ¿Que puedo hacer?

    Gracias

    lunes, 17 de octubre de 2016 18:10

Respuestas

  • Utilia el método FormClosing del formulario. El código que coloques en ese método se ejecutará al cerrar el formulario independientemente de la razón por la que se cierre (pulsar el botón salir, pulsar la x de cierre del formulario, ...).

    Form.FormClosing (Evento)


    Saludos, Javier J

    • Marcado como respuesta PedroGatti martes, 18 de octubre de 2016 10:33
    martes, 18 de octubre de 2016 9:52

Todas las respuestas

  • APLICACION.Quit()

    Podrías hacer

    Workbook libro = APLICACION.Workbooks.Open(ruta)

    ...

    libro.Close()

    antes del quit.

    lunes, 17 de octubre de 2016 18:31
  • Gracias Walter

    Tu sugerencia funciona si salgo con una sub propia, pero     no si lo hago con el boton cerrar de Windows

    lunes, 17 de octubre de 2016 19:43
  • Gracias Walter

    Tu sugerencia funciona si salgo con una sub propia, pero     no si lo hago con el boton cerrar de Windows

    Hola,

    ¿Donde pones libro.Close() y APLICATION.Quit()?

    Quizad poniendolo en el evento closing del formulario principal sea la solución.

    Por otro lado, tambien puedes desactivar las alertas del excel para qu no mande mensajes por pantalla.

    APLICATION.DisplayAlerts=false


    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
    Blog

    martes, 18 de octubre de 2016 7:15
  • Utilia el método FormClosing del formulario. El código que coloques en ese método se ejecutará al cerrar el formulario independientemente de la razón por la que se cierre (pulsar el botón salir, pulsar la x de cierre del formulario, ...).

    Form.FormClosing (Evento)


    Saludos, Javier J

    • Marcado como respuesta PedroGatti martes, 18 de octubre de 2016 10:33
    martes, 18 de octubre de 2016 9:52
  • Gracias a todos

    La solución fue

     Private Sub MainWindow_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing

            APLICACION.Quit()
        End Sub

    martes, 18 de octubre de 2016 10:19