Bonjour tout le monde,

Le problème est :

Je crée un fonction qui va chercher une valeur dans un fichier Excel, et après, elle va retourner cette valeur. Cette fonction est appelée dans une boucle.

Mais ça blogue, car l'application Excel ne ferme pas. Du coup, on lance beaucoup de "Excel.exe" et au bout d'un moment, ça blogue l'ordinateur. Mais pourtant, à la fin de cette fonction, j'ai écrit des instructions qui ferme et qui libère l'espace.

Help ... Merci
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Public Function ReadLine(ByVal MenuPara As String) As Byte
        Dim Var As Byte
        Dim NumOfVg As Byte
        Dim Menu As Integer
        Dim Para As Integer
 
        'Tous les variables pour base.xls
        Dim AppExcel As Excel.Application
        Dim BookExcel As Excel.Workbook
        Dim SheetExcel As Excel.Worksheet
 
        'Tous les variables pour position.xls
        Dim AppExcel1 As Excel.Application
        Dim BookExcel1 As Excel.Workbook
        Dim SheetExcel1 As Excel.Worksheet
 
        '*********************** Traitement des données dans " position.xls"*******************************
        ' Ouverture de l'application: recherche la postion spécifique dans position.xls
        AppExcel1 = New Excel.Application
 
        'Exemple 512
        Menu = Convert.ToInt32(Menu, 10) \ 100  ' On aura 5
        Para = Convert.ToInt32(Menu, 10) Mod 100 ' On aura 12
 
        'Ouverture du fichier base.xls
        BookExcel1 = AppExcel1.Workbooks.Open("C:\position.xls")
        SheetExcel1 = BookExcel1.Worksheets(1)
 
        Var = SheetExcel1.Cells(Para, Menu).value 'Numéro de ligne ou se trouve tous les infos d'un ID spécifique
 
 
 
        '*******************************************************************************************************
 
        '***********************Traitement des données dans base.xls*******************************************
 
        ' Ouverture de l'application: recherche la postion spécifique dans base.xls
        AppExcel = New Excel.Application
 
        'Ouverture du fichier base.xls
        BookExcel = AppExcel.Workbooks.Open("C:\base.xls")
        SheetExcel = BookExcel.Worksheets(1)
 
        'retraire le nombre de vigule d'un ID spécifique, qui se trouve forcement en colonne numéro 7
        NumOfVg = SheetExcel.Cells(Var, 7).value
 
        Return NumOfVg
 
        'Désallocation mémoire
        BookExcel1.Close()
        AppExcel1.Quit()
        BookExcel.Close()
        AppExcel.Quit()
 
        'Désallocation mémoire
        BookExcel1 = Nothing
        SheetExcel1 = Nothing
        BookExcel = Nothing
        SheetExcel = Nothing
        '*******************************************************************************************************
    End Function