J'ai une application JAVA qui écrit des formules dans un classeur EXCEL.
Dans une cellule (autre que A1) lorsque j'écris la formule avec POI IF(LEN(A1)>4, MID(A1,4,2), A1) et que je la fais calculer par Excel à l'ouverture, EXCEL me met #VALEUR.
Par contre, lorsque je rentre en édition sur la cellule contenant la formule et que je valide la cellule, ma formule est calculée correctement
Je n'ai aucune idée de pourquoi ce problème apparait, cependant il y a peut être moyen de le contourner. Avec la librairie [Apache POI] tu remplis ta cellule avec ta formule comme si c'était une simple chaine de caractère ; d'ailleurs il faut placer le " = " pour qu'Excel comprenne qu'il s'agisse d'une formule.
Donc remplis ta cellule avec cette chaine de caractère : '=IF(LEN(A1)>4, MID(A1,4,2),A1)
Le " ' " est pour dire à Excel que le contenu de la cellule est une chaine de caractère. Ensuite à l'ouverture de ton classeur [j'imagine que tu as une macro VBA déclenchée à l'ouverture] tu ajoutes la ligne suivante : Sheets(1).Cells(x, y).FormulaLocal = Sheets(1).Cells(x, y).Value
Bien entendu tu dois adapter la ligne selon ton besoin ; Sheets(1) -> la feuille 1 de ton classeur Excel ; x -> la ligne de la cellule et y -> la colonne de la cellule. La ligne de code permet à Excel de dire que la formule de la cellule doit correspondre à la valeur de la cellule (qui est ta formule en fait).
Cordialement, MatiChoux.
Le Kansas City Shuffle.. c’est quand tout le monde regarde à gauche et que tu vas à droite.
Merci pour ta réponse. Malheureusement, je ne veux et je ne dois surtout pas avoir de macro. Dans POI, il ne faut pas le "=" devant la formule. POI l'inscrit tout seul.
s'il y a d'autres idées,.....
Cordialement
- Edité par RickHunterSDF1 30 juillet 2013 à 15:04:03
J'ai testé chez moi et je peux faire deux remarques :
Ta formule marche pas en xls et marche en xlsx
Quand il créé le fichier il transforme la fonction en : =SI(NBCAR(A1)>4;STXT(A1;4;2);A1)
Je sais pas si ça t'aide. Que contient A1 ?
Il m'est arrivé par ailleur de rencontrer des problèmes d'affichage/rafraichissement, notament sur des styles à l'ouverture juste après la génération, par exemple certains cadre de cellules avaient pas la bonne épaisseur, en faisant faisant scrolldown/scrollup, ça rafraichissait les cellules et mettait le bon style.
- Edité par Govipi 30 juillet 2013 à 16:45:37
Facilitez vos recrutement de développeurs avec Staff Fit
oui, effectivement, ça fonctionne en xlsx mais pas en xls (qui est malheureusement le format dont j'ai besoin).
Le contenu de A1 est pour mon test "abcdefgh".
Ce que je n'arrive pas à comprendre, c'est que Excel convertit bien la formule anglaise en formule française mais ne la calcule pas. Par contre, si on presse la touche F2 dans la cellule et que l'on valide la cellule, la formule se calcule.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Kansas City Shuffle.. c’est quand tout le monde regarde à gauche et que tu vas à droite.