Listbox+scrollbox horizontale

jrmm10738 Messages postés 7 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 1 juin 2007 - 31 mai 2007 à 15:37
jrmm10738 Messages postés 7 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 1 juin 2007 - 31 mai 2007 à 19:41
Bonjour,

je voudrais insérer une schrollbar horizontal sur ma listbox, située sur un userform, car la moitié de mes éléments sont trop long. J'ai bien vu des postes a ce sujet mais j'arrive pas à faire fonctionner les codes.
Donc si quelqu'un avait la patiente de m'expliquer ça serait simpa.
Merci.
(Je fonctionne sous win2000 pro, je sais pas si ça a une incidence)

10 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
31 mai 2007 à 15:48
Bonjour,

Je ne suis pas l'auteur du code qui suit
(qui fait ta "chose")

Sur une form : une listbox List1 et un bouton Command1

Code :

Private Const LB_SETHORIZONTALEXTENT = &H194
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long




Private Sub Form_Activate()
  For i = 1 To 100
    List1.AddItem "aaaaaaaaaaaaaaaaaaaaaaaavvvaaaaaaaaaaaaaaaaaaaaaaaabbbbb"
  Next
End Sub


Private Sub Command1_Click()
  HorizontalSbar List1
End Sub




Private Sub HorizontalSbar(toto As Control)
  Dim lngReturn As Long
  Dim lngExtent As Long
  lngExtent = 4 * (toto.Width / Screen.TwipsPerPixelX)
  lngReturn = SendMessage(toto.hwnd, LB_SETHORIZONTALEXTENT, lngExtent, 0&)
End Sub

et dans un module :

Private Const LB_SETHORIZONTALEXTENT = &H194
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long




Private Sub Form_Activate()
  For i = 1 To 100
    List1.AddItem "aaaaaaaaaaaaaaaaaaaaaaaavvvaaaaaaaaaaaaaaaaaaaaaaaabbbbb"
  Next
End Sub


Private Sub Command1_Click()
  HorizontalSbar List1
End Sub




Private Sub HorizontalSbar(toto As Control)
  Dim lngReturn As Long
  Dim lngExtent As Long
  lngExtent = 4 * (toto.Width / Screen.TwipsPerPixelX)
  lngReturn = SendMessage(toto.hwnd, LB_SETHORIZONTALEXTENT, lngExtent, 0&)
End Sub




 
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
31 mai 2007 à 15:49
Pardon ! Oublie le module complètement ! Tout dans la form et oublie le reste...
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
31 mai 2007 à 16:01
salut,
ne suffirait-il pas de mettre une valeur non nulle dans la propriété COLUMN de la listbox ?
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
31 mai 2007 à 16:01
bonjour,
salut jmfmarques  , j'ai testé le code soumis et il est est nickel. (Je me le garde)
A+
louis
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
31 mai 2007 à 16:13
Avec column =non nul : plus de scroll vertical ??

A+
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
31 mai 2007 à 16:43
oui, mais si tu mets columns = 2 tu peux avoir tout ta liste en 2 colonnes, donc plus besoin d'ascenceur !
0
jrmm10738 Messages postés 7 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 17:02
Je dois vraiment nul, mais le programme bloque au niveau de la ligne
lngExtent = 4 * (toto.Width / Screen.TwipsPerPixelX)
car lngextent=0
je pourtant recréé un nouveau classeur avec un userform et le bouton comme il a été indiqué
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
31 mai 2007 à 17:31
jrmm10738

1) es-tu vraiment sous VB6 ?
2) comment s'appelle ta listbox ?
3) montre-nous ce que tu as écrit.

Il n'y a absolument aucune raison pour que ce code ne marche pas sous VB6 (section dans laquelle tu te trouves)
0
jrmm10738 Messages postés 7 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 19:39
a vrai dire je sais pas. Je travaille sur excel donc je travaille pas sur VB6???
0
jrmm10738 Messages postés 7 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 1 juin 2007
31 mai 2007 à 19:41
Et mince je fonctionne sur VBA. Je croyais que c'était la même chose, désoler de vous avoir fais perdre votre temps je vais poster sur l'autre section.
0