Ola,
J'ai utilisé le code du FAQ sur Excel pour importer une fiche Excel dans une stringgrid...
J'ai meme repris le code que j'ai utilisé dans une autr eappli, où tout fonctionne bien...
Voila le code:
Donc quand j'execute l'appli, avec mon opendialog, je sélectionne le fichier, et il me fait l'erreur :
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 //*************** Excel --> Delphi (import) procedure TForm1.OuvrirFiche1Click(Sender: TObject); var vMSExcel , vXLWorkbooks, vXLWorkbook, vWorksheet , vCell : variant; aFileName, aRange, aSheetName : AnsiString; name, aValue : string; i,j : integer; lettre: char; begin if (opendialog1.execute) then begin // ouverture Excel vMSExcel := CreateOleObject('Excel.Application'); vMSExcel.Visible := false; // ouverture fichier aFileName := opendialog1.FileName; vXLWorkbooks := vMSExcel.Workbooks; vXLWorkbook := vXLWorkbooks.Open(aFileName); // accès feuille // extraction du nom du fichier ouvert name :=opendialog1.filename; while pos('\',name)>0 do begin delete(name,1,1); end; while pos('.',name)>0 do delete(name,pos('.',name),4); // label1.Caption:='Fiche : '+name; aSheetName := name; vWorksheet := vXLWorkbook.WorkSheets[ Name]; end; // fin opendialog end;
Ca se bloque là :"classe exception d'EOleException avec le message 'index incorrect'"
Code : Sélectionner tout - Visualiser dans une fenêtre à part vWorksheet := vXLWorkbook.WorkSheets[ Name];
J'ai fait du pas à pas, la variable name prend bien le nom du fichier sans l'extension après les 2 boucles while, et lorsque ca arrive à cette famuese loigne, j'ai
name =(d1:0,d2:0,d3:0,d3:0,d40,0,0,0,0,0,0,0)
Après quelques tests, j'ai vu que je pouvais en fait ouvrir ceux que j'avais créés dans la stringgrid et exportés vers excel directement. Par contre, si je créé un fichier direct-t sous Excel, et que j'essaie de l'ouvrir, c'est là qu'arrive l'erreur.
Et je me suis aussi rendu compte que ca fait la meme erreur avec la 1ere appli dont j'ai repris le code...
Je sais pas d'ou ca vient!... aidez-moi
Partager