salut
je vous explique le probleme je crée une feuille excel via l'automation d'Excel comme indiqué dans la Faq (mais pas le composant de delphi)
et mon soucis est le suivant lorsque mon programme tourne j'ouvre l'instance a excel ensuite je la ferme et je laisse tourner mon programme je vais ouvrir le fichier que j'ai crée par excel sa fonctionne bien mais si je recommence excel plante d'une certaine facon car il n'afficher que la barre d'outils et rien d'autre même pas une feuille blanche, (cependant si je travail sur mon programme les modif sur mon fichier sont effectué malgré tout) donc je referme excel et si j'arrete mon soft excel refocntionne normalement et la je peut voir les modif etc...
je vous transmet les codes d'instance et de save et de close
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 if ConfigTest_Parametres.CptRenduExcel then begin vMSExcel := CreateOleObject('Excel.Application'); try vMSExcel := GetActiveOleObject('Excel.Application'); except vMSExcel := CreateOleObject('Excel.Application'); end; vXLWorkBooks := vMSExcel.WorkBooks; vXLWorkBook := vXLWorkBooks.Add; vXLWorkSheet := vXLWorkBook.WorkSheets['Feuil1']; vXLCell := vXLWorkSheet.Range['A1']; vXLCell.Value := Traduction_Traduire(9160); vXLCell := vXLWorkSheet.Range['B1']; vXLCell.Value := Traduction_Traduire(9161); vXLCell := vXLWorkSheet.Range['C1']; vXLCell.Value := Traduction_Traduire(9162); vXLCell := vXLWorkSheet.Range['D1']; vXLCell.Value := Traduction_Traduire(9163); vXLCell := vXLWorkSheet.Range['E1']; vXLCell.Value := Traduction_Traduire(9164); vXLCell := vXLWorkSheet.Range['F1']; vXLCell.Value := Traduction_Traduire(9165); NumLigneExcel := 2; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ConfigTest_Parametres.CptRenduExcel then begin vXLWorkBook.SaveAs(ChangeFileExt(NomFichier,'.xls')); vXLWorkBook.Close(False,ChangeFileExt(NomFichier,'.xls')); end;
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 if ConfigTest_Parametres.CptRenduExcel then begin vXLCell := vXLWorkSheet.Range['B'+IntToStr(NumLigneExcel)]; vXLCell.Value := StBon; vXLCell := vXLWorkSheet.Range['C'+IntToStr(NumLigneExcel)]; LireNomPointUtilisateur(Pt1,Nom); vXLCell.Value := Nom; vXLCell := vXLWorkSheet.Range['D'+IntToStr(NumLigneExcel)]; LireNomPointUtilisateur(Pt2,Nom); vXLCell.Value := Nom; vXLCell := vXLWorkSheet.Range['E'+IntToStr(NumLigneExcel)]; vXLCell.Value := Res; vXLCell := vXLWorkSheet.Range['F'+IntToStr(NumLigneExcel)]; vXLCell.Value := 'B'; Inc(NumLigneExcel); end;ps: lorsque jouvre excel la fonction close est deja effectué mais mon soft est toujours present il tourne en gros mai n'utilise plus excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2vMSExcel, vXLWorkBooks, vXLWorkBook, vXLWorkSheet, vXLCell : variant;
lorsque je veu reutiliser je repass par la fonction qui instancie
merci pour le code main car je sais vraiment pas quoi faire aucune idée
[/code]
Partager