Bonjour,
je cherche à convertir une variable String en nombre à 3 Decimales
une âme charitableCode:quantitevendue = CDbl(TextBox4.Value)
Bien Cdt
Version imprimable
Bonjour,
je cherche à convertir une variable String en nombre à 3 Decimales
une âme charitableCode:quantitevendue = CDbl(TextBox4.Value)
Bien Cdt
Bonjour, 3 décimal tu peux rester en single pas besoin de double
La fonction round permet les arrondi
à adapter, attention avec les , et les .Code:
1
2
3 Dim a As Single a = Round(CSng("2,334455"), 3) MsgBox a
Bonsoir Krovax
ma variable est de type String, j'insère dans une Textbox par exple , cette valeur 860 ( par défaut, une valeur dans une Textbox est forcément String, ou y at'il un moyen de la transformer en 3Dec dès insertion ?)
Je voudrais la convertir en nombre à 3 decimales, il me semble que ton code le permet seulement pour une variable en expression numérique ?
bien Cdt
Pourquoi ne pas essayer la solution de Krovax, d'abord?
bonsoir
je l'ai fait, mais je ne dispose toujours pas de la conversion à 3dec ( je pense qu'elle est du fait ( à mon avis ) de la nature de la variable insérée String .
ma valeur affichée est toujour un chiffre entier
à l'exemple 860Code:quantitevendue = CDbl(TextBox4.Value)
bien Cdt
Est-ce que c'est ça que tu veux ? :
Code:quantitevendue = CDbl(TextBox4.Value) / 1000
Ben, si tu saisis une valeur entière, tu ne sais pas la convertir en nombre à trois décimales, alors...
Tu veux juste modifier l'affichage pour voir 3 zéros derrière la virgule, je suppose.
Tout dépend de l'endroit ou tu stockes cette valeur...
Dans une cellule? Format de cellule/Nombre
Dans un textbox? format("2","0.000") par exemple
bonsoir aalex_38
ce que j' aimerais, cest à partir d'une Textbox, insérer un chiffre entier ou à décimales ( par défaut celui-ci est en String ) et le convertir en chiffres avec ajout de 3 décimales si il est entier
exple 860 à 860,000
Merci aalex_38
je pense ne pas savoir convertir la donnée de type String issue de ma textbox,en chiffre à 3Decimales Pierre .
Bien Cdt
puisque tu n'as pas répondu clairement à la question de Pierre, il faut que les 3 chiffres décimaux apparaissent dans la TextBox.
Alors met dans la procédure évenementielle "TextBoxName_Exit(ByVal Cancel As MSForms.ReturnBoolean)" de la TextBox :
La conversion se fera en quittant la TextBox et utilisera dans la TextBox la valeur affichée pour les prochains usages.Code:TextBoxName.Value = Format$(TextBoxName.Value, "0.000")
"TextBoxName" a adapté au vrai nom de la TextBox.
En reprenant le code de Pierre :
Code:TextBox1.Value = Format(CDbl(TextBox1.Value), "0.000")
Sans être indiscret, je me demande quand même quel est l'intérêt d'une telle conversion dans un textbox.
Edit: désolé ESVBA, je n'avais pas vu ton dernier message.
bonjour
Merci pour votre attention et votre patience, conscient que je me suis mal fait comprendre ou n'ai pas compris vos message respectifs
j'ai un code en boucle ( j'ai une quantité vendue qui peut être entiére ou décimalisée à 3DEC ), que j'insére dans une Textbox .En la récupérant, j'active une boucle Do Loop. Je n'arrivais pas à sortir de la boucle, du fait me semble-t-il d'un probléme de format entre quantitevendue & q
quantitevendue était pour moi par défaut de type String , q étant un double
Merci, et Dsl je viens de comprendre ! ton code fonctionne aalexCode:
1
2
3
4
5 quantitevendue = CDbl(TextBox4.Value) Do Until quantitevendue = q loop
Les deux sont faux, il sont de type variant puisque tu ne déclare pas tes variables.Citation:
quantitevendue était pour moi par défaut de type String , q étant un double
Si tu commençais par là???
remarqueCode:dim quantitevendue as double, q as double
Et surtout pas
Code:dim quantitevendue, q as double
Ensuite ta boucle infinie, le mieu et de la suivre en pas a pas soit en mettant des pause soit avec F8. Et de suivre l'évolution des variables, afficher les variable local mettre des espion, etc...
je les avais déclarés au préalable en tant que variant, du fait que la variable q, est issue d'une fonction Vlookup ( qui me raméne des valeurs chiffrées "entières ou décimalisées" issue d'une base )
j'ai un erreur de la fonction Vlookup , si j'use d'une décalration en double (mais elle fonctionne en variant).
variant/variant ne fonctionne pas
Code:quantitevendue = CDbl(TextBox4.Value)
ma reflexion était de convertir par la suite "q" en double et la confronter à l'autre variable "quantitévendue" issue de la textbox ( préalablement convertie en double ).Code:
1
2
3
4
5 Do Until quantitevendue = q q = Application.VLookup(y, Worksheets("STOCK").Range("M" & j + 1, "S" & i), 7, False) j = Application.VLookup(y, Worksheets("STOCK").Range("M" & j + 1, "N" & i), 2, False) q = CDbl(q)
et là, cela fonctionne :oops:
Merci Krovax