No libera o cierra excel.exe por grafico
Publicado por Bernardo Barrera (4 intervenciones) el 13/12/2006 00:37:50
Hola amigos,
mi problema es que al cargar nuevos datos a las series de el grafico existente en la hoja de excel, no me cierra el excel.exe en windows, algo se queda pendiente haciendo y no se que es,
espero y me ayuden, pues no puedo sacar reportes consecutivamente, tengo que salirme del sistema y asi se libera el excel, y ya puedo sacar otro reporte.
gracias
este es el codigo que uso,
Dim Dato, Client As String
Dim ApExcel As Excel.Application
Dim Work As Excel.Workbook
Dim Hoja As Excel.Worksheet
Set ApExcel = CreateObject("Excel.Application")
Set Work = ApExcel.Workbooks.Open("C:\AFondos\Reportes\Nuevo rev11.xls")
ApExcel.Visible = True
Hola = ApExcel.ActiveSheet.ChartObjects.Count
ApExcel.ActiveSheet.ChartObjects(Hola).Activate
serie = ApExcel.ActiveChart.SeriesCollection.Count
For i = 1 To serie
If i = 1 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("B7:B" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("B6")
Else
If i = 2 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("C7:C" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("C6")
Else
If i = 3 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("D7:D" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("D6")
End If
End If
End If
Next i
ApExcel.Visible = False
Work.SaveAs
Work.Close
ApExcel.Quit
Set ApExcel = Nothing
mi problema es que al cargar nuevos datos a las series de el grafico existente en la hoja de excel, no me cierra el excel.exe en windows, algo se queda pendiente haciendo y no se que es,
espero y me ayuden, pues no puedo sacar reportes consecutivamente, tengo que salirme del sistema y asi se libera el excel, y ya puedo sacar otro reporte.
gracias
este es el codigo que uso,
Dim Dato, Client As String
Dim ApExcel As Excel.Application
Dim Work As Excel.Workbook
Dim Hoja As Excel.Worksheet
Set ApExcel = CreateObject("Excel.Application")
Set Work = ApExcel.Workbooks.Open("C:\AFondos\Reportes\Nuevo rev11.xls")
ApExcel.Visible = True
Hola = ApExcel.ActiveSheet.ChartObjects.Count
ApExcel.ActiveSheet.ChartObjects(Hola).Activate
serie = ApExcel.ActiveChart.SeriesCollection.Count
For i = 1 To serie
If i = 1 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("B7:B" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("B6")
Else
If i = 2 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("C7:C" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("C6")
Else
If i = 3 Then
ApExcel.ActiveChart.SeriesCollection(i).XValues = ActiveSheet.Range("A7:A" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Values = ActiveSheet.Range("D7:D" & j - 1 & "")
ApExcel.ActiveChart.SeriesCollection(i).Name = ActiveSheet.Range("D6")
End If
End If
End If
Next i
ApExcel.Visible = False
Work.SaveAs
Work.Close
ApExcel.Quit
Set ApExcel = Nothing
Valora esta pregunta


0