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

Documents Java Discussion :

[JXL] Insertion de formule


Sujet :

Documents Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut [JXL] Insertion de formule
    Bonjour,
    J'utilise JavaExel dans une application Web java.
    J'ai un problème à l'insertion de formules dans mon document lorsque celle ci cointient des ; (point virgule).
    Voici un exemple de code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Formula formule = new Formula(6, ligne, "MOYENNE(D5:F5)", encadre);
    feuille.addCell(formule);
    et
    presque le même qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formula formule = new Formula(6, ligne, "MOYENNE(D5;F5)", encadre);
    feuille.addCell(formule);
    et l'erreur générée (G19 et la cellule qui doit recevoir la formule) :
    Warning: Lexical error: MOYENNE(D5;F5) at char 10 when parsing formula MOYENNE(D5;F5) in cell feuille1!G19
    Merci de votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Un petite précision.
    Après un essai avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formula formule = new Formula(6, ligne, "MOYENNE(D5,F5)", encadre);
    					feuille.addCell(formule);
    ça mache et ça donne une bonne formule dans le fichier Excel (voir image)


    Mais la même chose ne marche pas avec une autre formule (qui ne marche pas non plus avec le point virgule) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formula formule = new Formula(6, ligne, "=ARRONDI(12,34,0)", encadre);
    					feuille.addCell(formule);
    et l'erreur :
    Warning: Incorrect arguments supplied to function when parsing formula =ARRONDI(12,34,0) in cell feuille1!G19
    Error:

  3. #3
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Salut,

    Si Jexcel fonctionne comme VBA, il faut remplacer les points-virgules des formules que tu rentrerais dans la feuille Excel par des virgules dans le code.

    Pour la fonction ARRONDI, elle ne prend que deux arguments, le nombre à arrondir, et le nombre de décimales. Là, tu lui passes trois arguments... normal que ça hurle!
    Tu veux arrondir 12,34? C'est ça? Le séparateur décimal est le point (format anglo-saxon oblige)... donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Formula formule = new Formula(6, ligne, "=ARRONDI(12.34,0)", encadre);
    					feuille.addCell(formule);

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Merci pour la précision et la rapidité.

    Le problème est résolu pour ARRONDI.
    J'ai un autre problème sur une formule plus compliquée.
    Pour cela je prèfère ne pas signaler la discution comme "résoulue" tout de suite : je cherche et je reviens.

    Pour ceux qui liraient ce message : il ne faut pas mettre le signe '=' devant la formule dans le code (erreur de saisie de ma part dans le code que j'ai présenté plus haut).

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    mes problèmes sont résolus : merci plegat.
    Ce qu'il me restait à résoudre (voir mon dernier message) était en fait la formule suivante (ici à la mode Excel français) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(test;reponse_si_vrai;reponse_si_faux)
    Comme l'indique plegat il faut respecter les normes anglo-saxonnes :
    1- les ; devienent des ,
    2- les , des nombres deviennet des .
    3- et... les SI deviennent des IF : il faut speaker l'anglais. Pas difficile, mais il fallait le savoir.
    4- ...

    La formule ci-dessus devient donc dans le code Java (Formula...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF(test,reponse_si_vrai,reponse_si_faux)
    Merci encore,
    et à bientôt sur les forums.

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 814
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par JibéCC
    3- et... les SI deviennent des IF : il faut speaker l'anglais. Pas difficile, mais il fallait le savoir.
    Ah oui, désolé de ne pas l'avoir précisé...
    Sinon, en VBA il y a une instruction (formulaLocal) pour entrer les formules dans la langue locale dans les macros, et plus en anglais... il faudrait voir si il n'y a pas l'équivalent sous JExcel... ça serait peut-être plus pratique pour les non-anglophones (mais moins portable du coup!)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    re salut,
    A première vue JXL reste anglophone.
    A mon avis ce n'est pas bien grave car cela reste de l'anglais simpliste, et comme tu le signale cela donne un portabilité.

    Reste la perte culturelle de la langue. Moi je suis breton, alors on n'est plus à une perte de langue près

  8. #8
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par JibéCC
    Un petite précision.
    Après un essai avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formula formule = new Formula(6, ligne, "MOYENNE(D5,F5)", encadre);
                        feuille.addCell(formule);
    ça mache et ça donne une bonne formule dans le fichier Excel (voir image)


    Mais la même chose ne marche pas avec une autre formule (qui ne marche pas non plus avec le point virgule) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formula formule = new Formula(6, ligne, "=ARRONDI(12,34,0)", encadre);
                        feuille.addCell(formule);
    et l'erreur :

    Dans ta formule, tu utilises la variable encadre. Sert-elle a réaliser un encadré sur la cellule ? Et si oui, comment la définies-tu ?

    Merci.

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut formule inter-feuille
    Est-que c'est possible d'insérer des formules inter-feuille?? du genre :
    '2008-06'!F$123
    mes tests n'ont pas fonctionnés avec ce genre de formule.
    merci d'avance

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

Discussions similaires

  1. Insertion de formule dans Excel
    Par PIALOU dans le forum VBScript
    Réponses: 4
    Dernier message: 09/10/2007, 23h59
  2. Insertion de formules par VBA
    Par Livet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/08/2007, 14h23
  3. Insertion de formule
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 27/06/2007, 12h37
  4. [Excel] Insertion de formule dans ma feuille par macro (erreur400)
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2007, 10h27
  5. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53

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