Bonjour.

J'ai un programme qui se connecte à un fichier Excel ouvert via TExcelApplication et qui crée une worksheet.

Quand j'ai le volet de visualisation de windows d'activé, que "prévisualise" mon classeur, puis que j'ouvre le classeur , le programme me retourne l'erreur suivante : 'Erreur OLE 800A03EC'

Dans les process, j'ai 2 instances d'excel, dont une qui à comme argument : "Embedding"
Je penses que Delphi essaye de se connecter à la mauvaise instance.

Comment faire pour se connecter à la bonne ?

Voici le code minimaliste qui reproduit le problème :
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
 
procedure TForm1.Button1Click( Sender : TObject );
var
  Excel : TExcelApplication;
begin
  try
    Excel := TExcelApplication.Create( Self );
    Excel.ConnectKind := ckRunningInstance;
    Excel.Connect;
    Excel.Workbooks.Add( xlWBATWorksheet, 0 );
  except
    on E : Exception do
    begin
       ShowMessage( E.Message );
    end;
  end;
end;
 
end.
Des images pour mieux comprendre de quoi je parle :

Nom : Process.jpg
Affichages : 382
Taille : 106,7 Ko

Nom : Volet.jpg
Affichages : 385
Taille : 250,3 Ko

Merci d'avance.

Tristan