Nombres à virgules dans une Combobox

Résolu
cs_adri37 Messages postés 10 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 novembre 2009 - 23 nov. 2009 à 17:05
cs_adri37 Messages postés 10 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 novembre 2009 - 24 nov. 2009 à 08:41
Bonjour,

Dans un userform, j'utilise une textbox dans laquelle l'utilisateur ne peut mettre uniquement un nombre. Ce nombre est ensuite enregistrée dans une cellule d'un tableau excel et servira pour divers calculs.
Le problème est lorsque l'utilisateur rentre un nombre à virgule il ne s'enregistre pas comme un nombre dans la cellule et rend donc tout calcul impossible.

ex du code:
Worksheets("Tableau des donnees").Cells(j + 2, i).Value = Tbox_tps_panne1.Value

L'autre problème est lorsque je veux afficher dans une textbox un chiffre à virgule provenant d'une cellule excel, Excel (ou VBA) me convertit mon chiffre à virgule en chiffre avec un point ("2,55" dans la cellule excel devient "2.55" dans la textbox). Comment faire pour que dans la texbox s'affiche bien la virgule et non le point?

ex du code:
Tbox_tps_panne1.Value = Worksheets("Tableau des donnees").Cells(j + 2, i).Value

J'espère avoir été assez expliquatif, si ce n'est pas le cas n'hésitez pas à me le dire.
Merci d'avance pour votre aide

Cordialement,
Adrien

2 réponses

cs_adri37 Messages postés 10 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 novembre 2009
24 nov. 2009 à 08:41
Merci pour tes explications mais mon problème j'ai résolu mon premier problème : En fait après avoir rentré une valeur dans la Textbox, je la multiplie par 1

Worksheets("Tableau des donnees").Cells(j + 2, i).Value = Tbox_tps_panne1.Value * 1

Avec cette petite bidouille, la nombre à virgule s'enregistre bien en tant que nombre dans la cellule excel (il se place à droite de la cellule et non plus à gauche)

J'ai aussi résolu mon 2ème problème en remplaçant .Value par .Text pour la Textbox

Tbox_tps_panne1.Text= Worksheets("Tableau des donnees").Cells(j + 2, i).Value

Encore merci d'avoir réfléchi sur mon problème!

Bonne continuation

A+
3
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
23 nov. 2009 à 17:42
Bonjour,

Méthode 1 : tu forces la saisiue au KeyPress (transforme la virgule en point si virgule grappée)
Méthode 2 : tu utilises in fine (après saisie) la fonction Replace pour remplacer l'éventuelle virgule par un point
Méthode 3 : un exemple parlant (qui n'est pas à conseiller, mais qui est de nature à te faire comprendre certaines subtilités)
Dim toto As String, titi As Double
toto = "1,2"
titi = Val(toto)
If InStr(toto, ",") > 0 Then titi = CDbl(toto)
MsgBox titi * 2 & vbCrLf & "tu vois bien qu'il a bien multiplié toto par 2, de cette manière. Voiyons ce que contient titi ===>> " & Str(titi)
0
Rejoignez-nous