Format personnalisé des nombres dans une textbox

Résolu
Bourrique66 Messages postés 166 Statut Membre -  
Bourrique66 Messages postés 166 Statut Membre -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  3. Bourrique66 Messages postés 166 Statut Membre 2
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      mieux ainsi ?
      Me. TextBox13 = cstr(round(CDbl(Me. TextBox4) / CDbl(Me.TextBox5) * CDbl(Me.TextBox17) ,2))+"m3"
      0
      1. Bourrique66 Messages postés 166 Statut Membre 2 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
  4. Bourrique66 Messages postés 166 Statut Membre 2
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  7. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  8. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  9. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  10. Bourrique66 Messages postés 166 Statut Membre 2
     
    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
  11. Bourrique66 Messages postés 166 Statut Membre 2
     
    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
  12. Bourrique66 Messages postés 166 Statut Membre 2
     
    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
  13. Gyrus Messages postés 3360 Statut Membre 526
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
      1. Bourrique66 Messages postés 166 Statut Membre 2 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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