brownie0169
Messages postés9Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention14 janvier 2008
-
10 janv. 2008 à 16:58
brownie0169
Messages postés9Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention14 janvier 2008
-
14 janv. 2008 à 18:34
Bonjour
Sous Excel, quelqu'un pourrait il m'indiquer s'il est possible d'additionner les nombres dans des cellules mises en forme conditionnelle avec une formule? Lorsque la mfc est basée sur une valeur, pas de pb (ex: la valeur de la cellule est: =2008). Lorsque cette mfc se fait sur une formule, ça ne fonctionne pas (ex: La formule est: =$C$20). Existe t il une solution?
Je n'ai rien trouvé sur les forums...
D'avance merci.
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.InsererTexteClick(Sender: TObject);
begin
OleApplication.ActiveCell.Formula := Edit2.Text;
end;
procedure TForm1.ButtonInsererFormuleDansSelectionClick(Sender: TObject);
begin
OleApplication.Selection.Formula:=EditFormule2.Text;
end;
procedure TForm1.parcourirClick(Sender: TObject);
begin
if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName;
end;
procedure TForm1.OuvrirClick(Sender: TObject);
begin
OleWorkBook:=OleApplication.Workbooks.open(Edit1.Text); // pour créer un nouveau document
end;
procedure TForm1.InvisibleClick(Sender: TObject);
begin
OleApplication.visible:=False; // pour rendre invisible word (on peut alors continuer à travailler dedans en aveugle
end;
procedure TForm1.VisibleClick(Sender: TObject);
begin
OleApplication.visible:=True; // pour visualiser
end;
procedure TForm1.NouveauDocumentClick(Sender: TObject);
begin
OleWorkBook:=OleApplication.Workbooks.Add; // pour créer un nouveau document
end;
procedure TForm1.fermerDocumentClick(Sender: TObject);
begin
OleApplication.Workbooks.Close;
end;
procedure TForm1.FermerWordClick(Sender: TObject);
begin
OleApplication.Quit;
OleApplication:=Unassigned;//La constante Unassigned est utilisée pour indiquer qu'une variable Variant n'a pas encore été affectée d'une valeur.
end;
procedure TForm1.GrasClick(Sender: TObject);
begin
OleApplication.Selection.Font.Bold := not(OleApplication.Selection.Font.Bold);
end;
procedure TForm1.ItallicClick(Sender: TObject);
begin
OleApplication.Selection.Font.Italic:=not(OleApplication.Selection.Font.Italic);
end;
procedure TForm1.SouligneClick(Sender: TObject);
Const
xlUnderlineStyleSingle=2;
xlUnderlineStyleNone=-4142;
begin
if OleApplication.Selection.Font.UnderLine=xlUnderlineStyleNone then
OleApplication.Selection.Font.UnderLine:=xlUnderlineStyleSingle
else OleApplication.Selection.Font.UnderLine:=xlUnderlineStyleNone;
end;
procedure TForm1.ButtonOuvrirExcelClick(Sender: TObject);
begin
OleApplication := CreateOleObject('Excel.Application');// création du lien OLE
OleApplication.visible:=True; // pour rendre word visible
end;
procedure TForm1.ButtonSelectionClick(Sender: TObject);
begin
OleApplication.Range[EditCellule2.text].select;
end;
procedure TForm1.ButtonSauverSousClick(Sender: TObject);
begin
OleApplication.ActiveWorkBook.SaveAs(Edit1.Text);
end;
procedure TForm1.ButtonMettreValeurClick(Sender: TObject);
begin
OleApplication.Range[Editcellule.Text].Formula:=EditFormule.Text;// attention Range est un tableau donc mettre [] et non ()
end;
procedure TForm1.ButtonLireCelluleClick(Sender: TObject);
begin
EditContenu.Text:=OleApplication.Range[Editcellule3.Text].value;
EditFormula.Text:=OleApplication.Range[Editcellule3.Text].Formula;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var Tab:array[1..100]of string;
i:integer;
begin
label6.Caption:='en cours';
for i:=1 to 100 do
begin
OleApplication.Cells[1,i+1].Formula:='=RC[-1]+1';
end;
for i:=1 to 100 do
begin
Tab[i]:=OleApplication.Cells[1,i].value;
end;
for i:=1 to 100 do
begin
OleApplication.Cells[2,i].Formula:=Tab[i];
end;
label6.Caption:='terminé';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
OleWorkBook.Worksheets.item[EditSelectOnglet.Text].Activate;//connexion à un onglet
end;
brownie0169
Messages postés9Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention14 janvier 2008 14 janv. 2008 à 18:34
Pb résolu, jai cherché quelquechose de compliquié, alors qu'une simple formule "SOMME.SI" suffisait....
Merci encore de t'inquiéter de mon problème.
@+