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 : 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
Merci de vos suggestions

Mario