Boutton spin et textbox

Bonjour,

Je vous demande encore votre aide pour un petit code qui paraît tout simple mais que je n'arrive pas à coder...

capture

j'ai dans mon tableau la colonne de gauche qui affiche la valeur d'un buyback, la colonne de droite affiche le % du buy back par rapport à la valeur d'achat "pas présente sur l'image".

mon bouton "rafraîchir" fonctionne, il permet dans le cas où on vient modifier la valeur du buyback manuellement de revenir à sa valeur initiale. Par exemple on passe de 32,7 % à 45 %, si je clique sur rafraîchir la valeur revient à 32,7 % (rien de fantastique en soit)...

maintenant au lieu de modifier les valeurs une à une manuellement, j'aimerai pouvoir rentrer une valeur dans la textbox par exemple "30%" et qu'elle s'applique à toute la colonne de droite, le bouton spin permettrait lui d'incrémenter par pas de 1 la valeur.

La textbox ne doit pas dépasser 100 % ou être inférieur à 0%.

Un clic sur le bouton rafraichir permettra toujours de revenir aux valeurs de bases "32,7 ; 40 ; 36,7"

Des solutions ? je bloque un peu

Bonjour Edouard, bonjour le forum,

Le fichier ? Je bloque un peu

14test.xlsm (33.47 Ko)
Private Sub SpinButton1_SpinDown()
TextBox1.Value = TextBox1.Value - 1
End Sub

Private Sub SpinButton1_SpinUp()
TextBox1.Value = TextBox1.Value + 1
End Sub

Private Sub TextBox1_Change()
If TextBox1.Value < 0 Or TextBox1.Value > 100 Then
    Exit Sub
End If
End Sub

Sub buyback()

If SpinButton1 Is Activate Then
    For Each i In Array(9, 11, 16, 20, 24, 28, 34, 36, 41, 45, 49, 55)
        Range("K" & i).Value = TextBox1.Value
    Next i
End If

End Sub

Ce que j'aimerais, dans l'idée évidemment le code ne fonctionne pas

Je précise que j'aimerai garder la possibilité de laisser la personne rentrer manuellement les valeurs, par exemple on rentre 30% dans la textbox (tout passe à 30%) et on modifie l'une des valeurs à la main dans la colonne buy back.

Re,

le code pour la TextBox1 :

Private Sub TextBox1_Change()
If Me.TextBox1.Value = "" Then Exit Sub
If Me.TextBox1.Value < 0 Or Me.TextBox1.Value > 100 Then
    MsgBox "Valeur invalide, recommencez !"
    With Me.TextBox1
        .SelStart = 0
        .SelLength = Len(.Value)
        Exit Sub
    End With
End If

For i = 9 To 61
    If Cells(i, "K").MergeArea.Address = Cells(i, "K").Address Then
        Cells(i, "K").Value = Me.TextBox1.Value / 100
    End If
Next i
End Sub

Fonctionne mais n'ayant pas le code du bouton rafrîchir je ne sais pas comment tu pourras remettre à zéro.

Je regarde pour le spinButton...

Nickel je vais regarder ça et bidouiller un peu Merci !

Ci-dessous le code pour rafraîchir, je ne me suis pas pris la tête

Sub raffraichir()

Range("K9").Value = 142000 / 433800
Range("K11").Value = 28000 / 70000
Range("K16").Value = 30894 / 84235
Range("K20").Value = 30894 / 84235
Range("K24").Value = 30894 / 84235
Range("K28").Value = 30894 / 84235
Range("K34").Value = 142000 / 433800
Range("K36").Value = 28000 / 70000
Range("K41").Value = 30894 / 84235
Range("K45").Value = 30894 / 84235
Range("K49").Value = 30894 / 84235
Range("K55").Value = 42193 / 105483

End Sub

Re,

Avec le code que je t'ai proposé pour la Textbox1, le SpinButton1 fonctionne tous simplement avec :

Private Sub SpinButton1_SpinDown()
If Me.TextBox1 = 0 Then Exit Sub
TextBox1.Value = TextBox1.Value - 1
End Sub

Private Sub SpinButton1_SpinUp()
If Me.TextBox1 = 100 Then Exit Sub
TextBox1.Value = TextBox1.Value + 1
End Sub

Ok c'est parfait !

ça va me servir pour pas mal de projet merci beaucoup !

Rechercher des sujets similaires à "boutton spin textbox"