Bonjour,

Je me permets de vous déranger concernant une problématique sur la fermeture d'Excel.
J'essaye de réaliser une application permettant la visualisation de données (via une base PostgreSQL)
J'ai fait la connexion, affich les différents items dans un datagridview jusque là tout va bien et j'ai créé un bouton pour exporter les données sur Excel.

L'export se fait bien mais le problème est que l'Excel ne se ferme pas . J'ai essayé pas mal de méthode (close, quit, ..) mais il y a toujours une tâche de fond. J'ai également cherché via la classe Marshal mais la je comprends pas bien l'utilité de cette class.

J'ai l'impression qu'il doit y avoir un objet_com je ne gères pas pouvez-vous me renseigner s'il vous plait.
Voilà la déclaration des variables :
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
              App = New xls.Application
            Dim objBook As xls.Workbook
            Dim objBooks As xls.Workbooks
            Dim objSheets As xls.Sheets
            Dim objSheet As xls._Worksheet
            Dim rangea As xls.Range
 
            objBooks = App.Workbooks
            objBook = objBooks.Add
            objSheets = objBook.Worksheets
            objSheet = objSheets(1)
 
.....
.....
 
 
 System.Runtime.InteropServices.Marshal.ReleaseComObject(rangea)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objSheet)
 
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objSheets)
                objBook.Close(False)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objBook)
                objBooks.Close()
                System.Runtime.InteropServices.Marshal.ReleaseComObject(objBooks)
                .Quit()
                System.Runtime.InteropServices.Marshal.ReleaseComObject(App)
 
 
                GC.Collect()
                GC.WaitForPendingFinalizers()


PS : Veuillez être indulgeant avec le code car je me lance en programmation

Bien à vous