Augmenter ou réduire le nombre de décimales par un spinbutton

Gregouz59

XLDnaute Nouveau
Bonjour à tous,
Je suis actuellement en phase de création d'un fichier excel avec de nombreuses UF.
Dans l'une d'elles il y a un textbox ou s'affiche le résultat d'un calcul (provenant d'autres textbox), à côté de ce textbox j'ai mis un Spinbutton afin de permettre à l'utilisateur d'augmenter ou de diminuer (mini 3 et maxi 6) le nombre de chiffres après la virgule.

Cela fait 2 jours que je me creuse la tête pour faire fonctionner ce spinbutton et réussir à faire bouger la quantité de décimales et...RIEN !

J'ai essayé une variable pour incrémenter le
"textbox75 = format(textbox75, "0." & variable)"
à chaque fois que l'on clique sur le Spinbutton (haut ou bas) mais ça ne fonctionne pas.

Quelqu'un aurait-il la solution "miracle" à ce problème ?

Merci d'avance pour votre aide.

Bonne soirée

Greg
 

Modeste geedee

XLDnaute Barbatruc
Re : Augmenter ou réduire le nombre de décimales par un spinbutton

Bonsour®
tu ne peut prendre directement le contenu du textbox75,
l'affichage est un texte
ce qui est tronqué est alors perdu,
ce qui n'est pas affiché n'existe pas .
il faut passer par une variable intermediaire (résultat du calcul)
fixer les bornes du spin_button ici min=3; max=6

Private Sub SpinButtonXX_Change()
'-- adapter le N° du spinbutton
TextBox75 = Format(CDbl(Range("G9")), "0." & String(SpinButtonXX.Value, "0"))
End Sub
 

Gregouz59

XLDnaute Nouveau
Re : Augmenter ou réduire le nombre de décimales par un spinbutton

Bonsoir geedee,

Merci pour le coup de main, j'ai réussi à faire ce que je voulais.
J'ai rajouté deux/trois opérations pour tester mon code et tout fonctionne, je met le code complet de mon test si jamais vous trouvez qu'il peut être "allégé".

Encore merci et bon week-end.

Greg

Code de mon "test" :
Private Sub SpinButton1_SpinUp()
TextBox1.Value = Val(TextBox2.Value) * Val(TextBox3.Value)
TextBox1 = Format(CDbl(TextBox1), "0." & String(SpinButton1.Value, "0"))
TextBox1 = Replace(TextBox1.Text, ",", ".")
TextBox4 = Val(TextBox1.Value) * 10
TextBox4 = Replace(TextBox4.Text, ",", ".")

End Sub

Private Sub SpinButton1_Spindown()
TextBox1.Value = Val(TextBox2.Value) * Val(TextBox3.Value)
TextBox1 = Format(CDbl(TextBox1), "0." & String(SpinButton1.Value, "0"))
TextBox1 = Replace(TextBox1.Text, ",", ".")
TextBox4 = Val(TextBox1.Value) * 10
TextBox4 = Replace(TextBox4.Text, ",", ".")
End Sub

Private Sub TextBox3_Change()
TextBox1.Value = Val(TextBox2.Value) * Val(TextBox3.Value)
TextBox1 = Replace(TextBox1.Text, ",", ".")
TextBox4 = Val(TextBox1.Value) * 10
TextBox4 = Replace(TextBox4.Text, ",", ".")
End Sub

Private Sub TextBox2_Change()
TextBox1.Value = Val(TextBox2.Value) * Val(TextBox3.Value)
TextBox1 = Replace(TextBox1.Text, ",", ".")
TextBox4 = Val(TextBox1.Value) * 10
TextBox4 = Replace(TextBox4.Text, ",", ".")
End Sub
 

Bebere

XLDnaute Barbatruc
Re : Augmenter ou réduire le nombre de décimales par un spinbutton

bonjour Gregouz,Modeste
suis donc l'exemple de Modeste
pour ce code besoin de 3 textbox et d'1 spinbutton

Code:
Dim result As Double

Private Sub SpinButton1_Change()

If TextBox3 <> "" Then
TextBox3 = Format(result, "0." & String(SpinButton1.Value, "0"))
End If

End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 44 Or KeyAscii = 46 Then          'Check for decimal separator "." or ","
        KeyAscii = Asc(Application.International(xlDecimalSeparator))
    End If
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 44 Or KeyAscii = 46 Then          'Check for decimal separator "." or ","
        KeyAscii = Asc(Application.International(xlDecimalSeparator))
    End If
End Sub

Private Sub TextBox2_Change()
If IsNumeric(Me.TextBox1) And IsNumeric(Me.TextBox2) Then
result = CDbl(Me.TextBox1) / CDbl(Me.TextBox2)
Me.TextBox3 = result
End If
End Sub

Private Sub UserForm_Initialize()

Me.SpinButton1.Min = 3
Me.SpinButton1.Max = 6

End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa