Bonjour,
J'ai un petit souci, qui me bloque depuis pas mal de temps...
Je programme un outil scientifique, avec une interface sous VBA, en utilisant Excel comme base de données.
Pour changer certains paramètres, l'utilisateur ouvre un userform, qui affiche la valeur actuelle du paramètre dans une textbox, puis peut modifier cette valeur, valide et la valeur mise à jour est renvoyée dans la cellule d'origine.
Le problème avec des nombres décimaux réside au niveau de la ponctuation : sous Excel, la ponctuation pour les nombres décimaux est la virgule (0,12), sous VBA, c'est le point (0.12)
Voici comment la procédure me transforme le nombre (Excel, VBA, Excel, VBA) en cas d'affichage, de renvoi puis de réaffichage
0,12 -> 0,12 -> 0.12 -> 12
J'ai tenté de mettre la valeur que je renvoie dans Excel dans un string avant de le metre dans la cellule :
Mais le problème demeure (même en mettant Cstr(temp))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dim temp as string temp = me.textbox1.value sheets("mysheet").cells(1,1).value = temp
J'ai tenté de jouer avec le format de la cellule d'arrivée dans Excel, mais foireux aussi.
J'ai tenté de formater ma valeur avec
mais avec la boucle affichage, renvoi, réaffichage, je finis toujours par perdre la virgule (et la tête !!!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part format(temp, "#.###,####")
J'ai aussi tenté de changer dans les options de VBA la ponctuation pour les décimales de "." à ",", mais j'ai toujours une perte de décimale à l'arrivée (12,123 -> 12123) et en plus, j'ai déjà utilisé la syntaxe "." pour les décimales dans tout mon programme VBA (20000 lignes), je me vois mal faire une recherche du caractère "." ...
Quelqu'un de plus astucieux que moi aurait-il une solution ?
Merci !
Partager