Bonjour à tous,
Je souhaite créer un Userform classique qui alimente les données d'un tableau. L'une des colonnes de ce tableau se nomme "Taux Horaire". Comme son nom l'indique les valeurs inscrites dans cette colonne doivent être des nombres avec deux décimales maximum.
L'utilisateurs saisira donc le taux horaire en question à travers une Texbox. Cette TextBox vérifie si les valeurs saisies sont des chiffres, notamment grâce à ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub tx_horaire1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Vérifie si le tx horaire est bien un nombre, avec des décimales, et opère aux modification le cas contraire Select Case KeyAscii 'seulement des chiffres Case 48 To 57 'virgule et point, séparateur décimal Case 44, 46 'seulement la virgule If KeyAscii = 46 Then KeyAscii = 44 'seulement une fois If InStr(tx_horaire1.Text, Chr(KeyAscii)) <> 0 Then KeyAscii = 0 'interdit le séparateur décimal en premier If tx_horaire1.Text = "" Then If KeyAscii = 44 Then KeyAscii = 0 Case Else tx_horaire1.Value = Null MsgBox "Seulement numérique ! Deux décimales maximum." End Select End Sub
Cependant, je rencontre un problème dont j'ignore totalement l'origine. Lorsque je saisie un nombre ayant plus de 2 décimales, le nombre récupéré par la cellule n'est pas le même d'une manière bien étrange.
Exemple :
- Si je saisi 50,50 dans ma textbox, aucun soucis je me retrouve avec 50,50 dans la cellule.
- Si saisi 50,505 dans ma textbox, là je me retrouve avec 50 505,00 dans la cellule.
A priori, l'origine du problème ne se trouve pas dans le code ci-dessous ; puisque j'ai essayé sans et le problème persiste.
Avez-vous une idée de ce que cela peut être ?
Bien à vous !
Partager