none
excel application en task manager RRS feed

  • Pregunta

  • Hola buenos días, alguien podría decirme como terminal una aplicación de excel cuando
    es abierta por vb .net?

    lo que pasa es que si cierra el workbook y luego la aplicación de excel al menos
    visiblemente, pero en el task manager se sigue ejecutando

    el código que utilizo es el siguiente..


      Public appExcel As Excel.Application
      Public wbExcel As Excel.Workbook
    
    
    Abrir_Excel("c:\test.xls")
    appExcel.ActiveSheet.range("A2").value2 = "HOLA MUNDO"
    appExcel.ActiveWorkbook.CheckCompatibility = False
    appExcel.ActiveWorkbook.SaveAs("c:\test2.xls")
    
    'en la parte superior edita una celda y luego lo guarda con otro nombre y lo hace perfectamente
    
    'luego...
    
        wbExcel.Close()
        appExcel.Quit()    'cierra perfectamente al menos de forma visible
    
    
    wbExcel = Nothing
    appExcel = Nothing
    
    'aunque haga esto, en el taskmanager se sigue ejecutando
    
    
     Public Sub Abrir_Excel(ByVal Doc As String)
    
            Try
    
                appExcel = Nothing
                appExcel = CreateObject("Excel.Application")
                wbExcel = appExcel.Workbooks.Open(Doc)
                appExcel.Visible = True
    
            Catch ex As Exception
                MsgBox("Se ha provocado un error al intentar abrir el Documento " & Doc & vbCrLf & vbCrLf & ex.Message)
            End Try
    
    
        End Sub




    he intentado hacerle con ésta instruccion pero nada

    System.Runtime.InteropServices.Marshal.ReleaseComObject(appExcel)




    con ésta otra pero tampoco
    GC.Collect()
    GC.WaitForPendingFinalizers()


    y he visto código para matar todos los procesos de excel, 
    pero eso no lo quiero en el cliente, puede tener varios archivos de excel personales

















    miércoles, 10 de febrero de 2010 15:04

Todas las respuestas

  • hola

    cuando haces estas operaciones no tenias previamente un excel abierto que estabas visualizando
    lo pregunto porque cerrara las instacias que ahs creado pero no las que estabas viendo

    no has probado poner todo junto, digo sin llamar el metodo abrir usando variable publicas


    me refiero a algo como esto

    Private Sub GenerarExcel()

        Dim appExcel As Excel.Application
        Dim wbExcel As Excel.Workbook

        appExcel = CreateObject("Excel.Application")
        wbExcel = appExcel.Workbooks.Open("c:\test.xls")
        appExcel.Visible = True

        appExcel.ActiveSheet.range("A2").value2 = "HOLA MUNDO"
        appExcel.ActiveWorkbook.CheckCompatibility = False
        appExcel.ActiveWorkbook.SaveAs("c:\test2.xls")

        wbExcel.Close()
        appExcel.Quit()  

        wbExcel = Nothing
        appExcel = Nothing

    End Sub


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 10 de febrero de 2010 15:26
  • he hecho pruebas con archivos de Excel abiertos y sin ninguno y de todas formas se queda en el task Manager
    ya cambie las variables publicas a privadas y sigue igual


    ejecute tu código sin ningun Excel abierto
    y el que abre lo deja en el task manager
    sin embargo si lo cierra visiblemente
     
    que mas podría ser?
    miércoles, 10 de febrero de 2010 15:48
  • hola

    has probado no usar el CreateObject()

    sino crear directamente la instancia:


    Dim appExcel As New Excel.Application


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 10 de febrero de 2010 15:50
  • ya, y hace exactamente lo mismo


    como dato, es que en todos los casos
    cuando me deja el excel corriendo en el task manager
    se quita cuando cierro totalmente la aplicación de vb que lo crea
    miércoles, 10 de febrero de 2010 15:57