Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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" :
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…