Format textbox

thierry.bayard

XLDnaute Junior
Bonjour,

J'ai de nouveau un problème qui va vous sembler simplissime mais tant pis pour mon ego.
Dans un userform avec plusieurs textbox, je voudrais qu'à la fin de la saisie, le format du nombre saisie soit :
- pour certaines textbox : un nombre avec séparateur de milliers et 2 décimales.
- pour d'autres : un pourcentage (l'utilisateur saisie 4.3, il apparaît 4.30 %)

Pour cela, j'ai fait respectivement :

Private Sub Text_B_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Text_B.Text = Format(Text_B.Text, "#,##0.00")
End Sub

et :

Private Sub Text_taux_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Text_taux.Text = Format(Text_taux.Text, "0.00")
Text_taux.Value = Text_taux.Value / 100 'pour que n'apparaisse pas 430 % au lieu de 4.30 %
Text_taux.Text = Format(Text_taux.Text, "0.00%")
End Sub


Mon problème est que ça ne marche pas quand j'utilise le point du pavé numérique et non la virgule. Or, les utilsateurs auront le reflexe d'utiliser le pavé numérique et non celui de mettre une virgule.

Merci pour votre aide.
 

JNP

XLDnaute Barbatruc
Re : Format textbox

Re :),
Réflexion faite, fait un test avant sinon à la 2ème sortie, tu aura un plantage avec le % :rolleyes:...
Code:
If InStr(1, TextBox2, "%") > 0 Then Exit Sub
TextBox2 = Format(Replace(TextBox2, ".", ",") / 100, "0.00%")
Bonne soirée :cool:
 

thierry.bayard

XLDnaute Junior
Re : Format textbox

Re bonjour,

Je bloque de nouveau sur un point de détail : maintenant les formats dans mes textbox sont OK sur mon userform suite à ce code :

TextBox1 = Format(Replace(TextBox1, ".", ","), "#,##0.00")

Maintenant, je veux récupérer cette donnée sous Excel. En faisant :
ActiveCell.Value = TextBox1.Value
La valeur s'affiche correctement mais Excel la considère comme du texte et non comme un nombre. (Si je sélectionne cette cellule avec d'autres cellules voisines, la somme ne s'affiche pas dans la barre en bas à droite ; de même, l'alignement par défaut est à gauche). Cela est vrai même si au préalable, je définis le format de ma cellule comme "Nombre".

Comment s'explique cela et comment peut-on y remédier ?

Merci encore pour votre aide
 

JNP

XLDnaute Barbatruc
Re : Format textbox

Re :),
Je manque d'expérience en vba, d'où le fait que certaines évidences ne me sautent pas aux yeux !!
Désolé, quand j'ai dit bêtement, ce n'était pas à ton encontre, mais plutôt que ma réponse pouvait paraître bête :eek:...
En ce qui concerne ton nouveau problème, logiquement c'est l'inverse, il faut que tu fasses un Replace de la virgule par le point, car VBA raisonne en anglais et non en préférences locales :p...
Bon courage :cool:
 

Discussions similaires

Réponses
15
Affichages
494

Statistiques des forums

Discussions
312 176
Messages
2 085 963
Membres
103 068
dernier inscrit
Strogoff