/ / Impossible de changer la valeur du contrôle du curseur à 0 - excel, formes, vba, curseur

Impossible de modifier la valeur du contrôle du curseur sur 0 - excel, formes, vba, curseur

Donc, j'ai un formulaire avec des curseurs, ainsicomme des cases à cocher correspondantes qui désactivent ou activent chaque curseur. Lorsque je désactive un curseur, je souhaite modifier sa valeur en 0, mais il refuse de coopérer et ne change pas la valeur. Frustrant, tant que je mets la valeur sur autre chose que 0, elle change.

Je "l'ai débogué, regardé un curseur" s Value changement de propriété pour les valeurs supérieures à 0, a vérifié que les commandes du sliders tableau correspond aux contrôles que je leur destinais, vérifié que le Min la propriété était 0 et a même changé pour un nombre absurdement bas au hasard elle n’était pas inclusive, donc je ne peux pas imaginer pourquoi elle se comportait de cette façon.

En réalité, ce n’est pas très important, car la valeur d’un curseur n’est pas prise en compte lorsqu’il est désactivé, mais il me dérobe, alors j’apprécierais toute idée à ce sujet.

Private Sub UpdateSliderComponents(i As Integer)
Dim enable As Boolean
enable = Not daysOff(i).Value

If Not enable Then
sliders(i).Value = 0
End If
labels(i).Enabled = enable
sliders(i).Enabled = enable
End Sub

Réponses:

0 pour la réponse № 1

Je viens d'essayer un formulaire simple ici pour tenter de reproduire votre cas. Mais ce n'est pas la même chose et les contrôles fonctionnent bien.

Notez également que Min et Max ne sont pas ce que vous pensez en tant que 0 et 100. C’est la plage des valeurs. La valeur est une autre propriété. Je peux définir Min comme 150 et Max comme 300. La valeur 150 représente maintenant le zéro point (0 pour cent) du curseur et 300 représentent le soi-disant 100 pour cent dans ce cas. Si vous avez défini Min sur 150 et que vous avez essayé de définir la valeur sur 0, cela entraînera une erreur. (Erreur d'exécution 380, impossible de définir la propriété Value. Valeur de propriété invalide.)

entrer la description de l'image ici

Option Explicit

Public Sub Respond(ByRef i As Integer)
Dim enable As Boolean

Select Case i
Case 0
enable = False
Case 1
enable = True
End Select

If Not enable Then
ScrollBar1.Value = 150 "--represents zero %
ScrollBar1.BackColor = &H8000000F
Else
ScrollBar1.Value = 250 "--represent some value in the range
ScrollBar1.BackColor = &H80FF80
End If

Debug.Print ScrollBar1.Value
ScrollBar1.Enabled = enable

End Sub

Cochez et diapositives à 250 (une valeur):

entrer la description de l'image ici

Décochez et glissez à 150 (zéro):

entrer la description de l'image ici