Paramétrer le nombre de décimales dans résultat Label d'un UsF

Résolu/Fermé
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 22 mars 2021 à 20:36
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 - 23 mars 2021 à 21:23
Bonjour le forum,

je suis en train de créer un UserForm pour des calculs.

Ceux-ci sont fait avec des multiplications ou divisions depuis des valeurs de TextBox pour ensuite afficher le résultat dans un Label.

Cependant, il m'arrive d'avoir un nombre important de décimales dans le résultat.

J'aimerais pouvoir n'afficher que 2 décimales.

Voici un des résultats/Label de l'UsF :


Et voici le code lié :
Private Sub CommandButton_I_T_Click()
If TextBox_P_T = "" Or TextBox_U_T = "" Then
MsgBox "Il faut que les champs P & U soient remplis pour le calcul !", vbInformation
Else
Me.Label_Résultat_T = (TextBox_P_T.Value / TextBox_U_T.Value / "1,73205080756888") & " Ampère(s)"
End If
End Sub


J'ai regardé et essayé quelques résultats trouvé sur le Web mais cela ne fonctionne pas (...)

Serait-ce parce que je fais afficher le résultat dans un Label ?

Si toutes les infos (screen et code) ne suffisent pas, je peux bien-sûr lier mon fichier en lien ;-)

Merci, par avance, pour votre aide !



Configuration: Windows / Chrome 89.0.4389.90

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
22 mars 2021 à 23:26
Re,

Comme ça :
Private Sub CommandButton_I_T_Click()
Dim P#, U#
  P = Val(TextBox_P_T.Value)
  U = Val(TextBox_U_T.Value)
  If TextBox_P_T.Value = "" Or TextBox_U_T.Value = "" Or P = 0 Or U = 0 Then
    MsgBox "Il faut que les champs P & U soient remplis pour le calcul !", vbInformation
  Else
    Me.Label_Résultat_T.Caption = Format(P / U / 1.73205080756888, "0.00") & " Ampère(s)"
  End If
End Sub


1
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
23 mars 2021 à 19:53
Bonsoir Patrice,

je me suis inspiré de ton code, à tête reposée, pour le modifier légèrement (pour que ce soit plus compréhensible pour moi) :
Private Sub CommandButton_I_T_Click()
If TextBox_P_T.Value = "" Or TextBox_U_T.Value = "" Then
MsgBox "Il faut que les champs P & U soient remplis pour le calcul !", vbInformation
Else
Me.Label_Résultat_T.Caption = Format(TextBox_P_T.Value / TextBox_U_T.Value / 1.73205080756888, "0.00") & " Ampère(s)"
End If
End Sub


MERCI pour ton aide, tes conseils et à très vite sur le forum :-)
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022
Modifié le 23 mars 2021 à 21:21
Bonjour,

En t"affranchissant des contrôles proposés, tu prends le risque d'un bug en cas de saisie non conforme
Ça pour économiser 2 lignes de code !!!
0
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
23 mars 2021 à 21:23
Exact ! J'avais zappé le fait d'un bug potentiel, même si pour le moment tout roule.

Je vais donc reprendre le tien ;-)
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 22 mars 2021 à 20:58
Bonjour Yoyo

Utilises Format(valeur, "0.00")

NOTE : les contrôles courants (label, textbox, ...) contiennent du texte.
VBA est très conciliant mais il n'est pas prudent d'utiliser directement ces textes dans des formules arithmétiques. Ça plante en cas de conversion implicite illégale.
Tu devrais les vérifier auparavant pour éviter les erreurs.
0
Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
22 mars 2021 à 21:26
Merci Patrice pour tes conseils !

Cependant, je ne trouve pas la façon d'écrire cette ligne correctement...

La fatigue n'arrangeant rien...
0