Nombres à virgules dans une Combobox [Résolu]

cs_adri37
Messages postés
10
Date d'inscription
lundi 2 février 2009
Dernière intervention
24 novembre 2009
- 23 nov. 2009 à 17:05 - Dernière réponse : cs_adri37
Messages postés
10
Date d'inscription
lundi 2 février 2009
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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_adri37
Messages postés
10
Date d'inscription
lundi 2 février 2009
Dernière intervention
24 novembre 2009
- 24 nov. 2009 à 08:41
3
Merci
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+

Merci cs_adri37 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de cs_adri37
jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Dernière intervention
5 avril 2013
- 23 nov. 2009 à 17:42
0
Merci
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)
Commenter la réponse de jmf0

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.