Paramétrer le nombre de décimales dans résultat Label d'un UsF [Résolu]

Signaler
Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
-
Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
-
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

Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 646
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


Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
149
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 :-)
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 646 >
Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021

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 !!!
Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
149 >
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021

Exact ! J'avais zappé le fait d'un bug potentiel, même si pour le moment tout roule.

Je vais donc reprendre le tien ;-)
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 646
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.
Cordialement
Patrice

Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
149
Merci Patrice pour tes conseils !

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

La fatigue n'arrangeant rien...