[Résolu] Transfert valeur ListView vers SpinButton

Kim75

XLDnaute Occasionnel
Bonjour le forum,

J'essaye depuis le début de la semaine de résoudre ce problème mais je ne trouve pas la solution, le principe est d'activer un nombre de TextBox en fonction de la valeur d'un SpinButton

En actionnant le SpinButton, le nombre de TextBox activés correspond bien à la valeur affichée du SpinButton, l'action sur le SpinButton répond donc bien au but recherché initialement

Mais lorsque, au lieu d'être actionné, le SpinButton est alimenté par une valeur qu'il prend d'une ListView, tout est chamboulé, j'ai essayé de convertir la valeur de la ListView, mais en vain

Ce serait sympa si quelqu'un pourrait me dire ce qui ne va pas dans le transfert de la valeur de la ListView vers le SpinButton, je ne pense pas que la boucle soit mal ficelée puisque le SpinButton répond bien au but

Cordialement, Kim.
 

Pièces jointes

  • Test.xlsm
    54.6 KB · Affichages: 79

Dranreb

XLDnaute Barbatruc
Bonjour.

Pourquoi ne feriez vous pas tout simplement :
VB:
TextBox1.Value = SpinButton1.Value
    For i = 1 To 4
      With Me("Textbox" & i + 1)
         .Locked = i > SpinButton1.Value
         .BackColor = IIf(.Locked, &HE0E0E0, &H80000005)
         If .Locked Then .Text = ""
         End With: Next i
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Kim, Dranreb

Kim c'est la feuille BD qui à de gros problème, j'ai converti les chiffres en nombre et ça donne 687974% ??? :eek::eek::eek:o_O

pourcentage.gif
 

Kim75

XLDnaute Occasionnel
Hello Dranreb, Lone-wolf :D

Merci Dranreb pour le tuyau, je me doutais bien que c'était la boucle le coupable :)
Et dire que j'accusais le SpinButton et je ne sais quoi d'autre, vraiment merci, :)

Code:
Private Sub SpinButton1_Change()
    Dim i As Integer, j As Integer
    TextBox1.Value = SpinButton1.Value
    If SpinButton1.Value = 0 Then
        TextBox1.Value = ""
        TextBox1.Locked = True
        TextBox1.BackColor = &HE0E0E0
        For j = 2 To 5
            Me.Controls("TextBox" & j) = ""
            Me.Controls("TextBox" & j).Locked = True
            Me.Controls("TextBox" & j).BackColor = &HE0E0E0
        Next j
    Else
        TextBox1.BackColor = &H80000005
        For i = 1 To 4
            With Me("Textbox" & i + 1)
                .Locked = i > SpinButton1.Value
                .BackColor = IIf(.Locked, &HE0E0E0, &H80000005)
                If .Locked Then .Text = ""
            End With
        Next i
    End If
End Sub

Cordialement, Kim.