[résolu] : Comment remplir une cellule avec une formule ?

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
superspiff83
Fraîchement OOthentifié
Messages : 4
Inscription : 12 déc. 2005 13:36

[résolu] : Comment remplir une cellule avec une formule ?

Message par superspiff83 »

Bonjour,

Je suis en train de faire des macros en openoffice Basic, et j'ai un petit souci :
J'essaie de mettre une formule dans une cellule à partir d'une macro. J'ai défini "oCell" comme "objet", "j" comme "entier" et après avoir défini ma cellule par sa position je mets cette instruction :

Code : Tout sélectionner

 oCell.setFormula("=SI((D" & j & "-F" & j & "*G" & j & ")>0;""NON"";""OUI"")") 
Jusque là tout va bien, je fais un essai ça marche la cellule est remplie, la fonction est bonne, mais (ben oui il y a un mais) la cellule affiche "#NOM ?". Alors que tout indique qu'il n'y a aucun problème.
Si jamais je fais F2 sur la cellule concernée, et que je déplace le curseur et que j'appuie sur entrée, là la formule est évaluée et la cellule affiche "oui" on "non" selon le cas.

Est-ce qu'une personne qui aurait compris tout ça saurait me dire où est mon problème :)

Merci d'avance



Marc
Le modérateur a écrit :Titre modifié. Le terme "problème" n'est pas pertinent. Merci de ne plus l'employer à l'avenir.
Dernière modification par superspiff83 le 20 avr. 2006 12:52, modifié 1 fois.
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

La méthode .setFormula() permet de mettre une formule écrite dans le language original d'OpenOffice : l'anglais. C'est pourquoi la fonction SI n'est pas reconnue. En faisant une édition manuelle du contenu, l'interpréteur Calc analyse la formule dans la langue locale, et ça fonctionne.
Deux solutions :

Code : Tout sélectionner

rem utiliser le nom anglais des fonctions
oCell.setFormula("=IF((D" & j & "-F" & j & "*G" & j & ")>0;""NON"";""OUI"")")

rem utiliser la propriété FormulaLocal avec le nom localisé des fonctions
oCell.FormulaLocal = "=SI((D" & j & "-F" & j & "*G" & j & ")>0;""NON"";""OUI"")"
FormulaLocal est une propriété de la cellule; il n'existe pas de méthode setFormulaLocal.
superspiff83
Fraîchement OOthentifié
Messages : 4
Inscription : 12 déc. 2005 13:36

[résolu] : Comment remplir une cellule avec une formule ?

Message par superspiff83 »

Merci :) ça a marché, j'ai essayé les deux méthodes, seulement la méthode setFormula = "=IF... a fonctionné... peut être que j'ai mal codé mais l'important est que ça marche.
Merci encore :)