Somme cellules couleurs conditionnelles [Résolu]

brownie0169 9 Messages postés mercredi 9 août 2006Date d'inscription 14 janvier 2008 Dernière intervention - 10 janv. 2008 à 16:58 - Dernière réponse : brownie0169 9 Messages postés mercredi 9 août 2006Date d'inscription 14 janvier 2008 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 14 janv. 2008 à 11:28
3
Merci
Je ne suis pas certain de comprendre ta question, ...
As-tu essayé SOMME.SI ?

Si ça ne fonctionne pas, donne plus de détails avec peut-être une idée de la composition de tes données.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_MPi
HAFTARIFOUAD 298 Messages postés mercredi 5 septembre 2007Date d'inscription 6 janvier 2011 Dernière intervention - 10 janv. 2008 à 18:11
0
Merci
Bonjour ;-)

voilà un exemple tt fait pour gèrer Excel à partir de Delphi

unit Unit1;


interface


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


type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    Edit1: TEdit;
    parcourir: TButton;
    Label1: TLabel;
    Ouvrir: TButton;
    Panel2: TPanel;
    Invisible: TButton;
    Visible: TButton;
    Panel3: TPanel;
    NouveauDocument: TButton;
    Panel4: TPanel;
    InsererTexte: TButton;
    Edit2: TEdit;
    Panel5: TPanel;
    FermerWord: TButton;
    Gras: TButton;
    Itallic: TButton;
    Souligne: TButton;
    ButtonOuvrirExcel: TButton;
    ButtonSauverSous: TButton;
    Panel6: TPanel;
    ButtonSelection: TButton;
    Panel7: TPanel;
    ButtonMettreValeur: TButton;
    EditFormule: TEdit;
    Label2: TLabel;
    Label4: TLabel;
    Editcellule: TEdit;
    Editcellule2: TEdit;
    fermerDocument: TButton;
    Panel8: TPanel;
    ButtonLireCellule: TButton;
    EditContenu: TEdit;
    Editcellule3: TEdit;
    Label3: TLabel;
    Label5: TLabel;
    Panel9: TPanel;
    EditFormule2: TEdit;
    ButtonInsererFormuleDansSelection: TButton;
    Panel10: TPanel;
    Button1: TButton;
    Label6: TLabel;
    Label7: TLabel;
    EditFormula: TEdit;
    Panel11: TPanel;
    Button2: TButton;
    EditSelectOnglet: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure InsererTexteClick(Sender: TObject);
    procedure parcourirClick(Sender: TObject);
    procedure OuvrirClick(Sender: TObject);
    procedure InvisibleClick(Sender: TObject);
    procedure VisibleClick(Sender: TObject);
    procedure NouveauDocumentClick(Sender: TObject);
    procedure fermerDocumentClick(Sender: TObject);
    procedure FermerWordClick(Sender: TObject);
    procedure GrasClick(Sender: TObject);
    procedure ItallicClick(Sender: TObject);
    procedure SouligneClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ButtonOuvrirExcelClick(Sender: TObject);
    procedure ButtonSelectionClick(Sender: TObject);
    procedure ButtonSauverSousClick(Sender: TObject);
    procedure ButtonMettreValeurClick(Sender: TObject);
    procedure ButtonLireCelluleClick(Sender: TObject);
    procedure ButtonInsererFormuleDansSelectionClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  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.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;


end.

haftari.fouad
Commenter la réponse de HAFTARIFOUAD
brownie0169 9 Messages postés mercredi 9 août 2006Date d'inscription 14 janvier 2008 Dernière intervention - 10 janv. 2008 à 20:10
0
Merci
Merci pour la réponse et bravo pour votre célérité!!!
Mais j'ai omis de préciser "Vba", et tropnovice pour me lancer dans ce vtype de programmation...
Commenter la réponse de brownie0169
brownie0169 9 Messages postés mercredi 9 août 2006Date d'inscription 14 janvier 2008 Dernière intervention - 14 janv. 2008 à 18:34
0
Merci
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.
@+
Commenter la réponse de brownie0169

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.