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

originalcompo 65 Messages postés dimanche 3 avril 2005Date d'inscription 9 octobre 2007 Dernière intervention - 21 sept. 2005 à 16:26 - Dernière réponse : originalcompo 65 Messages postés dimanche 3 avril 2005Date d'inscription 9 octobre 2007 Dernière intervention
- 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 

3 réponses

Répondre au sujet
originalcompo 65 Messages postés dimanche 3 avril 2005Date d'inscription 9 octobre 2007 Dernière intervention - 22 sept. 2005 à 14:13
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de originalcompo
cs_pascal99 26 Messages postés mercredi 10 septembre 2003Date d'inscription 20 janvier 2009 Dernière intervention - 22 sept. 2005 à 13:54
0
Utile
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
originalcompo 65 Messages postés dimanche 3 avril 2005Date d'inscription 9 octobre 2007 Dernière intervention - 22 sept. 2005 à 14:15
0
Utile
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.