Créer formule excel à partir de Delphi [Résolu]

Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Dernière intervention
9 octobre 2007
- - Dernière réponse : originalcompo
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Dernière intervention
9 octobre 2007
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de originalcompo
Messages postés
26
Date d'inscription
mercredi 10 septembre 2003
Dernière intervention
20 janvier 2009
0
Merci
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
Commenter la réponse de cs_pascal99
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Dernière intervention
9 octobre 2007
0
Merci
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
Commenter la réponse de originalcompo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.