Déplacement du scrollbar

Bonjour à tous

J'aimerai effectuer le contraire de ce code

Private Sub ScrollBar1_Change()
 Me.lst_Article.ListIndex = ScrollBar1.Value - 1
 ScrollBar1.Min = 1
 ScrollBar1.Max = Me.lst_Article.ListCount
End Sub

C'est à dire quand on click sur item de listBox, le scrollbar se déplace.

Est ce possible ?

j'ai bien tenté :

ScrollBar1.Value = lst_Article.ListIndex

Mais ne marche pas.

Cdlt

Bonsoir,

Là tu montres la sélection d'un item lorsqu'on modifie la valeur de la ScrollBar ! L'inverse de ta question !

Dans cette proc. la définition du Min et du Max n'ont rien à faire (à supprimer !)

Le Min s'il est fixé à 1, cela se fait dans la fenêtre de propriété.

Et le Max s'il dépend de la liste de la ListBox, cela se fixe lors de l'alimentation de la ListBox !

Un peu de logique !!

Pour l'inverse :

ScrollBar1.Value = lst_Article.ListIndex + 1

pour être en cohérence avec ce que tu as fait au-dessus...

Et c'est dans l'évènement ListBox1_Click qu'il faut le placer.

Teste pour vérifier qu'il n'y a pas d'effet pervers d'aller-retour : un évènement déclenchant l'autre qui redéclenche à son tour le premier... Normalement cela doit s'arrêter au 2e passage, rien n'ayant plus changé par rapport à l'état précédent, mais il vaut mieux vérifier que cela se passe bien ainsi...

Cordialement.

Bonjour MFerrand

Merci pour ton conseil, je vais regarder à tout ça.

Grand Merci

Cdlt

Re

Le ScrollBar1.Min est positionné à 1 dans sa propriété

et pour le ScrollBar1.Max j'ai mis la dedans (en bas)

'**************************
'    DIFFERENTES MACROS
'**************************
'----------------------------------------
' Affichage de la liste des articles dans ListBox
'----------------------------------------
Private Sub Affiche_Article()
Dim Ligne As Long

  With Me.lst_Article
    .Clear
    For Ligne = 2 To WsBase.Range("B" & Rows.Count).End(xlUp).Row
      .AddItem WsBase.Range("B" & Ligne)
      .List(Me.lst_Article.ListCount - 1, 1) = WsBase.Range("D" & Ligne)
      .List(Me.lst_Article.ListCount - 1, 2) = WsBase.Range("K" & Ligne)
    Next Ligne
  End With
  WsBase.Range("M1").Select
  Me.CBx_Type.SetFocus
  ScrollBar1.Max = Me.lst_Article.ListCount
End Sub

Ai-je bien fais ? cette macro est dans UserForm Initialize

Cdlt

Pas le temps de regarder en détail (journée pleine d'imprévus...) mais apparemment oui !

Pas de soucis !!!!

Ca à l'air de fonctionner correctement. Je cloture le post et MERCI pour tout.

A bientôt

Cdlt

Rechercher des sujets similaires à "deplacement scrollbar"