Problème Excel avec Vb net
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 ...:cry: Merci
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 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 |