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.
Merci de vos suggestions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Mario
Partager