Process Excel qui s'empile
Bonjour,
Que ce passe t'il?
Dans mon application je charge trois classeur Excel un après l'autre, le nombre de processus s'empile dans mon gestionnaire de tâche. je croyais que s'était parce que je suis en multithread mais je fait passer le nombre de thread à un et ça s'empile tout de même. puis lorsque j'arrêtre le déboggage les processus s'efface un après l'autre.
j'ai essayé quelques tentatives mais en vain.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
Dim xlApp As New Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
xlWorkBook = xlApp.Workbooks.Open("MaFeuille1.CSV")
xlWorkSheet = xlWorkBook.Worksheets(1)
If Not xlWorkSheet.UsedRange.Rows.Count = 0 Then
Col = xlWorkSheet.UsedRange.Columns.Count
Ligne = xlWorkSheet.UsedRange.Rows.Count
'Code de traitement...
'Fermeture de la feuille1
xlWorkBook.Close(False)
xlApp.Quit()
'Ouverture de la feuille2
xlWorkBook = xlApp.Workbooks.Open("MaFeuille2.CSV")
xlWorkSheet = xlWorkBook.Worksheets(1)
If Not xlWorkSheet.UsedRange.Rows.Count = 0 Then
Col = xlWorkSheet.UsedRange.Columns.Count
Ligne = xlWorkSheet.UsedRange.Rows.Count
'Code de traitement...
'Fermeture de la feuille2
xlWorkBook.Close(False)
xlApp.Quit()
'etc.
'Fermeture et destruction de l'object com
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
GC.WaitForPendingFinalizers()
End Try
End Sub |
Merci de vos suggestions
Mario