Code utilisé fréquement pour manipuler les fichiers excel sous VB6 :
'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierExcel.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
'
' code divers
'
wbExcel.save
wbExcel.Close
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
Et ce code me genere des processus en mémoire qu'il faut tuer en fermant l'application et en plus il faut référencer excel dans l'appli. Hors dévellopement sur Excel 2003 et utlisation sur des postes utilisant Excel 2000 -> gros BUG
J'en suis venu à essayer :
Dim appExcel As Object
Dim wbExcel As Object
Dim wsExcel As Object
Set appExcel = CreateObject("Excel.application")
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierExcel.xls")
Set wsExcel = wbExcel.ActiveSheet
'
' code divers
'
wbExcel.save
wbExcel.Close
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
notez la difference dans la déclaration des variables
et cela à résolu mes deux gros problemes
Cependant, il est à tenir compte que comme excel n'est pas référencé, la syntaxe du code excel sous vb6 doit etre maitrisé (on perd l'intuitivité de la programmation). Il faut à tous moment rappeler les objects crée pour faire fonctionné le code; je m'explique :
Avec le référencement d'excel il suffit d'écrire:
Sheets(2).Range("A1").value = "" pour remplir une cellule
Sans le référencement vous serez obligé d'écrire :
wbExcel.Sheets(2).Range("A1").value = ""
Je pense que ce tutoriel servira à un bon nombre de programmeur débutant comme moi