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:

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;
Donc quand j'execute l'appli, avec mon opendialog, je sélectionne le fichier, et il me fait l'erreur :

"classe exception d'EOleException avec le message 'index incorrect'"
Ca se bloque là :

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