Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
21 sept. 2020 à 17:16
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
23 sept. 2020 à 09:11
Bonsoir à tous !
J'ai dans une forme un contrôle Hscrollbar horizontal nommé barre. J'aimerai déterminer quelle partie de ce contrôle est cliquée pour un faire un défilement dans une table. Je m'explique :
En 1, MovePrevious
En 2, MovePrevious n fois la valeur de barre.value En 3, MoveNext n fois la valeur de barre.value En 4, MoveNext
Pour résumer, y a-t-il un moyen de savoir si je clique en 1, 2, 3 ou 4 pour savoir quelle action je dois faire ?
Je sèche depuis qq jours et une aide serait la bienvenue !
JeuDuTaquin
Messages postés248Date d'inscriptionmardi 4 juillet 2017StatutMembreDernière intervention20 mars 20237 Modifié le 21 sept. 2020 à 19:07
Salut Notpa,
Non, impossible de faire simple avec les fonctions de Class données... comme toujours.
Mais il est très simple de le savoir:
Nouvelle Form, un HScroll1 horizontal.
Public Last_Sc_Val
Private Sub Form_Load()
HScroll1.SmallChange=1 ' Flèche gauche-droite (1-4) SmallChange<>LargeChange
HScroll1.LargeChange=2 ' Zone Flèche-curseur (2-3) Sinon ça marche pas.
HScroll1.Min=0 'Limite basse
HScroll1.Max=10 'Limite haute
Last_Sc_Val = HScroll1.Value
End Sub
Private Sub HScroll1_Change()
Last_Sc_Val = -(Last_Sc_Val - HScroll1.Value)
Me.Caption = Last_Sc_Val
Select Case Last_Sc_Val
Case 0
Me.Caption = "Scroll: curseur"
Case -HScroll1.SmallChange
Me.Caption = "Scroll: Min gauche"
Case HScroll1.SmallChange
Me.Caption = "Scroll: Min droite"
Case -HScroll1.LargeChange
Me.Caption = "Scroll: Max gauche"
Case HScroll1.LargeChange
Me.Caption = "Scroll: Max droite"
Case Is < HScroll1.LargeChange
Me.Caption = "Scroll: Max gauche"
Case Else
Me.Caption = "Scroll: Max droite"
End Select
Last_Sc_Val = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Last_Sc_Val = HScroll1.Value
End Sub
Par contre, si Value est inférieur a LargeChange et supérieur à SmallChange, la réponse est ambigüe car les deux peuvent donner la bonne réponse.
Sinon, il faut faire du sub-classing... et c'est moins simple.
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 20211 23 sept. 2020 à 09:11
Bonjour JeuDutaquin !
Génial ! Impec ! Ça marche nickel. Pour mieux voir ce qui se passe, j'ai ajouté dans ton code une grille qui montre les choix et les valeurs. Ce qui donne :
Si tu veux, je peux copier ce code pour infos.
Merci encore. A moi maintenant de me ballader dans la base Access en fonction des zones cliquées.