Créer formule excel à partir de Delphi

Résolu
originalcompo Messages postés 65 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 9 octobre 2007 - 21 sept. 2005 à 16:26
originalcompo Messages postés 65 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 9 octobre 2007 - 22 sept. 2005 à 14:15
Salut

Voici mon code:

with TargetSheet.Range['A1','A1'] do begin
DestCalc.Select;
DestCalc.Formula := '=1+2';
DestCalc.NumberFormat := '0.00';
end

Le problème, c'est que dans la cellulle A1, j'obtient la chaine '=1+2'
Il suffit que je fasse F2 (pour rentrer dans la cellule), et quand je ressort, "miracle", il comprend que c'est une formule...

Si quelqu'un a une idée...

http://originalcompo.free.fr

3 réponses

originalcompo Messages postés 65 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 9 octobre 2007 1
22 sept. 2005 à 14:13
Merci pour le code...
En fait j'ai eu une réponse d'un collègue de bureau:

Le code que j'ai cité fonctionne à condition de rajouter le format numérique dans la cellule AVANT de remplir la formule.

Ce qui donne

with TargetSheet.Range['A1','A1'] do begin
DestCalc.NumberFormat := 'General';
DestCalc.Formula := '=1+2';
DestCalc.NumberFormat := '0.00';
end

Sinon, le NumberFormat mis après la formule n'est pas analysé (en tout cas avec ma configuration, soit version d'excel 2003 etc...)

Merci quand même !!!

http://originalcompo.free.fr
3
cs_pascal99 Messages postés 24 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 20 janvier 2009
22 sept. 2005 à 13:54
Bonjour,
Voici un petit bout de code qui fonctionne en D5 :

unit Unit1;


interface


uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, comobj;


type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


var
Form1: TForm1;


implementation


{$R *.DFM}
var
OleApplication :variant;
OleWorkBook :variant;


procedure TForm1.FormCreate(Sender: TObject);
begin
OleApplication := CreateOleObject('Excel.Application');// création du lien OLE pour la classe référencé par Excel dans la base de registre "Excel.Application"
OleApplication.visible:=True; // pour rendre Excel visible
OleWorkBook:=OleApplication.Workbooks.Add; // pour créer un nouveau document
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try OleApplication.Quit;
except end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
OleApplication.Range['A1'].select;
OleApplication.Selection.Formula:= '=1+2';
end;


end.


Tiens-moi au courant


Pascal99
0
originalcompo Messages postés 65 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 9 octobre 2007 1
22 sept. 2005 à 14:15
euh, juste un truc, c'est pas un vrai copier coller de code que j'ai fait, et le vrai code est:

with TargetSheet.Range['A1','A1'] do begin
NumberFormat := 'General';
Formula := '=1+2';
NumberFormat := '0,00';
end

http://originalcompo.free.fr
0
Rejoignez-nous