Format personnalisé des nombres dans une textbox

[Résolu/Fermé]
Signaler
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
-
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
-
Bonjour,
J’utilise cette formule fournie par gbinforme qui marche très bien mais maintenant j’aimerais avoir le résultat sous cette forme : 000.00m3, comment faire avec cette formule.
Merci d’avance.

If IsNumeric(Me. TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(Me.TextBox5) Then
Me. TextBox13 = CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17)

Else

End If
End Sub

12 réponses

Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
Peux-tu donner quelques exemples de comment c'est affiché pour le moment, et comment tu le voudrais?
Juste un essai :
Me. TextBox13 = cstr(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) )+"m3"
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
je propose :
Me. TextBox13 = cstr(round(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) ,2)+"m3"

cela devrait arrondir à deux chiffres après la virgule
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1
Re
Merci de ta réponse rapide, je viens de tester la nouvelle ligne de code et au moment du calcul ce message apparaît:

Erreur de compilation.
Erreur de syntaxe

Merci de te pencher sur mon problème
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
mieux ainsi ?
Me. TextBox13 = cstr(round(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) ,2))+"m3"
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1 >
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021

Bonjour,
Re
Merci ça correspond à ma demande puisque ‘il affiche bien les m3 avec 2 chiffres après la virgule mais le résultat est faux. Je m’explique 10/22,50*86,400=38,40m3
Résultat dans la textbox si je mets un point à la place de la virgule le résultat final=39.27m3.
Pourtant je voudrai bien continuer à utiliser le point comme séparateur.
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
L'ancienne formule donnait le bon résultat, et la nouvelle pas?
ancienne
CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17)

nouvelle
cstr(round(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) ,2))+"m3"
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
As-tu gardé le
else 
avec rien pour
If IsNumeric(Me. TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(Me.TextBox5)

Si oui, ajoute ceci entre le
else
et le
end if
:
Me.TextBox13="?"

Cela donne quoi?
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
Je propose plutôt ceci:
Private Sub TextBox5_Change() 

If IsNumeric(Me.TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(Me.TextBox5) Then 
      Me.TextBox13  = CStr(Round(CDbl(Me.TextBox4) / CDbl(Me.TextBox5) *                         CDbl(Me.TextBox17), 2)) + "m3" 
Else 
     Me.TextBox13 = "?"
End If 
End Sub 

J'espère que cela va eliminer les erreurs de calcul. On verra ensuite pour te permettre d'utiliser des points.
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
Si cela fait ce que j'imagine, je propose ceci:
Private Sub TextBox5_Change() 

If IsNumeric(Me.TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(replace(Me.TextBox5,".",",")) Then 
      Me.TextBox13  = CStr(Round(CDbl(Me.TextBox4) /  CDbl(replace(Me.TextBox5,".",",")) *   CDbl(Me.TextBox17), 2)) + "m3" 
Else 
     Me.TextBox13 = "?"
End If 
End Sub
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
Peut-être ainsi?
Private Sub TextBox5_Change() 

If IsNumeric(Me.TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(replace(Me.TextBox5,".",",")) Then 
      Me.TextBox13  = format(CDbl(Me.TextBox4) /  CDbl(replace(Me.TextBox5,".",",")) *   CDbl(Me.TextBox17),"0.00") + "m3" 
Else 
     Me.TextBox13 = "?"
End If 
End Sub
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1
Bonjour,
J’ais modifier le code avec ta ligne : voilà le résultat 12/41*84,600=25,2878048780488m3,j’aimerais avoir 25,28m3 arrondi à 25,29m3
Merci d’avance.

If IsNumeric(Me. TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(Me.TextBox5) Then
Me.TextBox13 = CStr(CDbl(Me.TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17)) + "m3"
Else

End If
End Sub
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1
Bonjour,
L'ancienne formule donne le mauvais résultat aussi si je met un point à la place de la virgule. Que faire pour remédier à cela.
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1
Re
si je met :
Private Sub TextBox5_Change()

If IsNumeric(Me.TextBox17) And IsNumeric(Me.TextBox4) And IsNumeric(Me.TextBox5) Then
Me.TextBox13 = "?" = CStr(Round(CDbl(Me.TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17), 2)) + "m3"
Else

End If
End Sub
Au moment du calcul dans textbox =False
J'aimerais utiliser le point que pour ce classeur
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1
Re
Merci ça marche, a part un tout petit détail.Quand le résultat et 28.40m3 il marque 28.4m3,serait il possible d'avoir le zéro.
En tout cas merci de ta patience.
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528
Bonjour,

Tu peux tester ce code :
Private Sub Calculer_Click()
Dim N1 As Double, N2 As Double, N3 As Double
If Not (IsNumeric(Replace(Me.TextBox17, ".", ",")) And _
IsNumeric(Replace(Me.TextBox4, ".", ",")) And _
IsNumeric(Replace(Me.TextBox5, ".", ","))) Then Exit Sub
N1 = CDbl(Replace(Me.TextBox4, ".", ","))
N2 = CDbl(Replace(Me.TextBox5, ".", ","))
N3 = CDbl(Replace(Me.TextBox17, ".", ","))
Me.TextBox13 = Replace(Format(N1 / N2 * N3, "0.00"), ",", ".") & " m3"
End Sub

A+
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
881
Si une des valeurs n'est pas numérique, je pense important de faire
Me.TextBox13 = "?"
, pour ne pas laisser l'ancienne valeur calculée, qui n'est plus correcte.
Messages postés
120
Date d'inscription
mardi 2 juin 2015
Statut
Membre
Dernière intervention
9 décembre 2020
1 >
Messages postés
16454
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021

Merci tout marche bien. A bientôt sur le forum car encore pas mal de question pour finir mon projet.
Gyrus je garde ta réponse sous le coude et je teste dés que je peut.
merci encore de votre patience