IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Delphi + Excel : Formule avec IF


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 50
    Par défaut Delphi + Excel : Formule avec IF
    Bonjour,

    J'ai un petit soucis avec Delphi et Excel lorsque je veux utiliser une formule avec "IF" :
    Avec une Formule simple (B1-B2), il n'y a pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[1,1].Formula:='=B1-B2';
    Mais des que je veux utiliser un "IF", ça ne fonctionne plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[1,1].Formula :='=IF(B3<3;"PASS";"FAIL")';
    Pourtant si je passe la formule directement ( a la main ) dans la cellule excel, il n'y a pas de problème.

    J'ai essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[1,1].Value:=...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[1,1].Formula:=...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[1,1].FormulaR1C1:=...
    mais j'ai l'erreur : 800A03EC

    Quelqu'un aurait il une solution ?
    Si en plus de la solution, quelqu'un savait comment dans cette même formule je puisse lui dire de mettre la cellule en rouge (FAIL) ou vert (PASS) sans avoir a passer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MaFeuille.Cells.Item[1,1].FormatConditions.add....
    MaFeuille.Cells.Item[1,1].FormatConditions[1].interior.Color.....
    .....
    Par avance, merci.



    Win7, Delphi 2007

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    HRESULT 800A03EC, cela se décompose ainsi
    8 Error
    A Control Automation
    3EC = 1004 = ERROR_INVALID_FLAGS

    Pour la coloration, je pense qu'il n'y a pas plus simple que ton code hormis d'intégrer une macro dans le fichier EXCEL

    As-tu essaye SI ?
    Entre Formula et LocalFormula, il y a toujours des surprises

    Tu utilises " (double quote) as tu essayé '' (simple quote deux fois)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 50
    Par défaut
    Salut ShaiLeTroll,

    Pour "LocalFormula", il ne connait pas : "Method not supported by automation"

    Pour le "SI" a la place de "IF" : c'est un excel en anglais, mais j'ai essaye (on ne sait jamais) : même probleme

    Tu utilises " (double quote) as tu essayé '' (simple quote deux fois)
    J'ai essaye mais ce n'est pas mieux.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Essaye un truc, créer un fichier excel vierge, met dans la cellule A1, ta formule souhaité
    ouvre le fichier et fait un ShowMessage(MaFeuille.Cells.Item[1,1].Formula);,
    peut-être que la syntaxe interne n'est pas exactement celle que l'on saisie !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    La formule est a priori à loger dans Value : delphi-excel-probleme-formule
    et pour les valeurs conditionnelles, essaye avec autre chose : 1 et 2 par exemple ; restera à trouver la bonne syntaxe
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 50
    Par défaut
    Merci de l'astuce, ShaiLeTroll
    en utilisant
    ShowMessage(MaFeuille.Cells.Item[1,1].Formula);
    il me donne la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '=IF(K73<3,"PASS","FAIL")'
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '=IF(K73<3;"PASS";"FAIL")'
    donc j'utilse la version avec les "," et pas les ";" et ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Cells.Item[Actual_Line,11].Formula :='=IF(K73<3,"PASS","FAIL")';
    Seulement quand je regarde, sous excel, la formule dans le fichier créé, j'ai bien :
    '=IF(K73<3;"PASS";"FAIL")'
    du moment que ça marche, ce n'est pas grave.

    Pour les couleurs, j'ai essaye cela sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions.add(2,3,'=FAIL');
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[1].interior.Color:=255;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[1].interior.PatternColorIndex:=1;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[1].interior.TintAndShade:=0;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[1].StopIfTrue:=True;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions.add(2,3,'=PASS');
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[2].interior.Color:=5296274;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[2].interior.PatternColorIndex:=1;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[2].interior.TintAndShade:=0;
          MaFeuille.Cells.Item[Actual_Line,11].FormatConditions[2].StopIfTrue:=True;
    Aurais-tu idée de mon erreur ?

    Tourlourou, j'avais vu le post mais le pb était le même.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tirer les formules avec boucle et condition excel
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/10/2006, 15h11
  2. [VBA Excel] sauvegarde avec le contenu de la formule
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2006, 16h19
  3. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29
  4. excel : formule si avec test sur case précédente
    Par tibyann dans le forum Excel
    Réponses: 7
    Dernier message: 03/02/2006, 15h43
  5. excel : formule "=si..." avec liaison
    Par tarmin dans le forum Excel
    Réponses: 7
    Dernier message: 30/01/2006, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo