Format personnalisé des nombres dans une textbox

Résolu/Fermé
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 - 11 nov. 2016 à 18:56
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 - 12 nov. 2016 à 11:28
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
A voir également:

12 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 nov. 2016 à 19:01
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"
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 nov. 2016 à 20:42
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
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
11 nov. 2016 à 20:55
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
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 nov. 2016 à 21:01
mieux ainsi ?
Me. TextBox13 = cstr(round(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) ,2))+"m3"
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
11 nov. 2016 à 21:17
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.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
11 nov. 2016 à 22:03
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"
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
12 nov. 2016 à 09:53
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
Modifié par yg_be le 12/11/2016 à 10:19
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?
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
12 nov. 2016 à 10:30
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.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
12 nov. 2016 à 10:38
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
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
12 nov. 2016 à 10:56
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
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
11 nov. 2016 à 19:57
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
-1
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
Modifié par Bourrique66 le 12/11/2016 à 10:26
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
-1
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2
12 nov. 2016 à 10:44
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.
-1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
12 nov. 2016 à 11:02
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+
-1
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
12 nov. 2016 à 11:07
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.
0
Bourrique66 Messages postés 158 Date d'inscription mardi 2 juin 2015 Statut Membre Dernière intervention 25 septembre 2023 2 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
12 nov. 2016 à 11:28
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
0