Je galère avec le format d'un textbox dont je veux exporter la valeur vers Excel.
J'ai un premier morceau de code pour mettre en forme le textbox dans le userform après modification de l'utilisateur :
Code:
Private Sub Text_prix_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Text_prix.Text = Format(Replace(Text_prix.Text, ".", ","), "#,##0.00")
End Sub
J'en ai un second pour l'export vers Excel :
Code:
Range("A1") = Val(Format(Text_prix.Text, "0.00"))
Les décimales s'affichent correctement dans le userform.
Après le transfert, sur Excel, j'ai bien une valeur au format nombre avec 2 décimales mais qui sont systématiquement à 00. Exemple : dans le userform, je saisie 12.25 ; sur excel, j'obtiens 12.00
Merci pour toute vos réponses rapides. Je fais une petite synthèse :
Solution de Lolote83 : le changement de point en virgule ne fonctionne pas.
Solution de Pierrot : l'inversion des fonctions val et format : j'ai modifié les fermetures de parenthèse pour que Excel accepte. Malheureusement, la donnée arrive sous excel en format texte et sans les décimales.
Solution de mikeo : après modification des parenthèses, les décimales restent mais on passe en format texte et non plus en nombre... on s'approche, on s'approche.
Salut Thierry,
Une solution peut être un peu détournée mais qui semble fonctionner.
Il suffit de rajouter +1 et -1 à la fin.
Exemple :
range("C5") = Text_prix + 1 - 1
Cette dernière solution conserve bien les décimales (de même qu'avec l'option Cdbl). Par contre, je passe toujours en format texte. Or, je souhaite pouvoir additionner les valeurs par la suite...
Pourquoi faut-il ajouter .text à textprix ? Tu récupères une valeur en texte.
Egalement vérifier que Dim textprix est à Double et non pas string
Sans fichier, on ne peut pas tester.
La solution miracle de Lolote fonctionne, je vais dont simplement tricher en faisant + 1 - 1.
Pour le moment je n'ai pas trouvé mieux.
Pour ta proposition mikeo, je pense qu'il faudrait 2 étapes :
- déclarer une variable as double
- définir cette variable comme étant égale au text du textbox "text_prix
Je n'ai pas eu le temps de tester et dois partir en réunion. Je ragarde ça ce soir.