jrmm10738
Messages postés7Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention 1 juin 2007
-
31 mai 2007 à 15:37
jrmm10738
Messages postés7Date d'inscriptionjeudi 31 mai 2007StatutMembreDerniè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)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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
jrmm10738
Messages postés7Date d'inscriptionjeudi 31 mai 2007StatutMembreDerniè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é
jrmm10738
Messages postés7Date d'inscriptionjeudi 31 mai 2007StatutMembreDerniè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.