OVH Cloud OVH Cloud

Nombre dans TextBox

4 réponses
Avatar
Steph
Bonjour,

J'ai un problème avec le format d'un TextBox.
Dans une 1er macro je vais chercher la valeur de la cellule "I7" que je
place dans un TextBox6 au format 18,12 ?, jusque là tout fonctionne très
bien
-------
TextBox6 = Range("I7") 'Prix
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
-------
Après je souhaite reprendre la valeur du TextBox6 et la replacer dans la
cellule A1
-------
Prix = Val(TextBox6.Value)
Range("A1") = Prix
-------
Là, problème j'ai perdu les dixièmes, si au départ j'avais la somme 212,15 ?
je n'ai plus que 212,00 ?,
La case A1 est bien au bon format

Pourriez vous m'aider ?

Merci

Steph

4 réponses

Avatar
Clément Marcotte
Bonjour,

Val() plante quand le séparateur décimal dans les paramètres régionaux
est la virgule.

Au lieu de Val() utilise les fonctions de conversion en numérique

Cint() : pour convertir en nombre entier (<32768)
Clng() : pour convertir en entier long (beaucoup plus haut que 32768)
Csng() : Pour convertir en nombre à virgule flottante en simple
précision ( Environ 7 chiffres significatifs)
Cdbl() : Pour convertir en nombre à virgule flottant en double
précision. (Environ 16 chiffres significatifs).


"Steph" a écrit dans le message de
news:%23M9k%
Bonjour,

J'ai un problème avec le format d'un TextBox.
Dans une 1er macro je vais chercher la valeur de la cellule "I7" que
je

place dans un TextBox6 au format 18,12 ?, jusque là tout fonctionne
très

bien
-------
TextBox6 = Range("I7") 'Prix
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
-------
Après je souhaite reprendre la valeur du TextBox6 et la replacer
dans la

cellule A1
-------
Prix = Val(TextBox6.Value)
Range("A1") = Prix
-------
Là, problème j'ai perdu les dixièmes, si au départ j'avais la somme
212,15 ?

je n'ai plus que 212,00 ?,
La case A1 est bien au bon format

Pourriez vous m'aider ?

Merci

Steph




Avatar
docm
Bonjour.

En complément de la réponse de Clément, la fonction Val() remonte à une
époque où les paramètres régionaux en Basic n'existaient pas. Donc Val() ne
reconnaît que le point comme séparateur décimal. Tout autre caractère est
interprété comme étant du texte ( donc non numérique).
Sous toutes réserves.

"Steph" wrote in message
news:#M9k#
Bonjour,

J'ai un problème avec le format d'un TextBox.
Dans une 1er macro je vais chercher la valeur de la cellule "I7" que je
place dans un TextBox6 au format 18,12 ?, jusque là tout fonctionne très
bien
-------
TextBox6 = Range("I7") 'Prix
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
-------
Après je souhaite reprendre la valeur du TextBox6 et la replacer dans la
cellule A1
-------
Prix = Val(TextBox6.Value)
Range("A1") = Prix
-------
Là, problème j'ai perdu les dixièmes, si au départ j'avais la somme 212,15
?

je n'ai plus que 212,00 ?,
La case A1 est bien au bon format

Pourriez vous m'aider ?

Merci

Steph




Avatar
Alain CROS
Bonjour

Sub test()
TextBox6 = [I7]
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 €")
[A1] = Val(Application.Substitute(TextBox6.Value, ",", "."))
End Sub

Alain CROS

"Steph" a écrit dans le message de news: #M9k#
Bonjour,

J'ai un problème avec le format d'un TextBox.
Dans une 1er macro je vais chercher la valeur de la cellule "I7" que je
place dans un TextBox6 au format 18,12 ?, jusque là tout fonctionne très
bien
-------
TextBox6 = Range("I7") 'Prix
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
-------
Après je souhaite reprendre la valeur du TextBox6 et la replacer dans la
cellule A1
-------
Prix = Val(TextBox6.Value)
Range("A1") = Prix
-------
Là, problème j'ai perdu les dixièmes, si au départ j'avais la somme 212,15 ?
je n'ai plus que 212,00 ?,
La case A1 est bien au bon format

Pourriez vous m'aider ?

Merci

Steph




Avatar
Steph
Merci beaucoup, ça fonctionne très bien

"Alain CROS" a écrit dans le message de news:

Bonjour

Sub test()
TextBox6 = [I7]
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
[A1] = Val(Application.Substitute(TextBox6.Value, ",", "."))
End Sub

Alain CROS

"Steph" a écrit dans le message de
news: #M9k#
Bonjour,

J'ai un problème avec le format d'un TextBox.
Dans une 1er macro je vais chercher la valeur de la cellule "I7" que je
place dans un TextBox6 au format 18,12 ?, jusque là tout fonctionne très
bien
-------
TextBox6 = Range("I7") 'Prix
TextBox6.Value = Format(TextBox6.Value, "#,##0.00 ?")
-------
Après je souhaite reprendre la valeur du TextBox6 et la replacer dans la
cellule A1
-------
Prix = Val(TextBox6.Value)
Range("A1") = Prix
-------
Là, problème j'ai perdu les dixièmes, si au départ j'avais la somme
212,15 ?
je n'ai plus que 212,00 ?,
La case A1 est bien au bon format

Pourriez vous m'aider ?

Merci

Steph