bonjour
j'ai une listbox avec une barre de defilement verticale, j'aimerais faire defiler les donnees de la listbox avec la fonction souris.
Je travail sur un portable, sans souris, juste le petit pave.
merci a vous de m'oriente
cris
Version imprimable
bonjour
j'ai une listbox avec une barre de defilement verticale, j'aimerais faire defiler les donnees de la listbox avec la fonction souris.
Je travail sur un portable, sans souris, juste le petit pave.
merci a vous de m'oriente
cris
Tu n'as rien a paramètrer ou programmer pour ce faire, ton portable n'ayany pas de souris, c'est le pavé qui prends la main...
Si pour aller plus loin tu parle de la fonction scroll avec la molette de la souris, je t'arrête net : cette fonction n'est pas gérée avec les listbox. Donc au même titre que la souris tu ne pourras pas la mettre en place avec ton pavé.
Les expert, vous me corrigez si je dis une bêtise
on doit pouvoir faire defiler une listbox avec le pave d'un portable, je pense
cris
bonjour a vous tous
sur mon fichier j'ai listbox; textbox ,combobox et je n'ai jamais pu actionné la roulette pour faire monter ou descendre les données de ma listebox que ce soit sur mon portable ou le bureau
cordialement
Pascal
bonjour messieux
ce lien pourra peut etre vous aiguiller
le fichier contient la dll et meme le module standard
bonne roulette souriciere
liens:http://support.microsoft.com/kb/837910/fr
au plaisir
bonjour
et revoila peut etre une autre solution
http://www.gasanov.net/VBScroll.asp
au plaisir
j'ai trouve ceci dans un forum et je pense que cela pourrais repondre a nos souhait, le seul souci c'est que je ne sais pas comment l'attribuer a mon userform
voici le code trouve dans forum
Mon userform s'intitule Anniv et ma listbox - ListBox1Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Option Explicit 'Thierry Pourtier, novembre 2002 Dim hwnd As Long Private Sub CommandButton1_Click() Unload Me End Sub 'cette procédure gère la propriété Listindex des contrôles définis 'dans MouseWheel via la propriété .Tag de ces contrôles Public Sub Controle_ActualiseWheel(Control As MSForms.Control, ByVal sens As Integer) Dim Index As Long 'le contrôle doit avoir une propriété ListIndex ! Index = Control.ListIndex Select Case sens Case 1 If Index < Control.ListCount - 1 Then Index = Index + 1 Case -1 If Index > 0 Then Index = Index - 1 End Select Control.ListIndex = Index End Sub Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 'évite d'avoir à cliquer dans la fenêtre 'pour prendre le focus ListBox1.SetFocus End Sub Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) ComboBox1.SetFocus End Sub Private Sub UserForm_Initialize() hwnd = hwndFenetreForm(Me.Caption) If hwnd <> 0 Then Hook hwnd ListBox1.ListIndex = 0 ComboBox1.ListIndex = 0 End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'si cette procédure n'est pas appelée : plantage '(y penser durant les tests : c'est sans appel !!!) UnHook End Sub
si quelqu'un a une idee
merci d'avance
cris
@ Patrick
Les 2 solutions que tu donnes ne correspondent pas à la demande, il ne s'agit pas d'utiliser la roulette dans l'éditeur VB mais dans un contrôle ListBox.
Excuse moi Fring, mais je pense que cela correspond a la premiere demande que j'ai faite.
je joints le fichier, pour peu si tu le veux regarder, et me dire si je me trompe.
cordialement
cris
ok Fring
je suis sur que tu as certainement raison, je ne te contredirais pas
etant novice en la matiere.
j'essais de trouver une possibilite de faire avancer ma demande.
merci de ta reponse
cris
Si les différentes réponses ci-dessus ne conviennent pas, c'est peut-être que la demande n'est pas très claire...
Ta première demande :
Là...je ne sais pas quoi répondre :aie:Citation:
j'aimerais faire defiler les donnees de la listbox avec la fonction souris.
Je travail sur un portable, sans souris
Ta seconde demande :
Là je te dis, oui tu peux faire défiler avec les flèches "haut" et "bas" à partir du moment où ta ListBox a le focus. Si ce n'est pas ce que tu cherches, essaie de reformuler ta demandeCitation:
on doit pouvoir faire defiler une listbox avec le pave d'un portable
ma demande porte simplement sur:
est il possible via le pave de mon portable, n'ayant pas de souris
faire defile les donnees dans une listbox.
cris
Tu n'as pas les flèches "haut" et "bas" sur le pavé de ton portable ?
si mais je trouve plus pratique de me servir du pave pour le defilement.
Qu'entends tu par "pavé" ? le pavé tactile (touch pad) ?
bonjour fring
apres relecture tu a raison:aie:
@chris
je viens de regarder ta source que tu a trouver elle est plutot pas mal l'utilisation de hook etait de rigeur dans ce cas la
maintenant pour la question a adapter a ton userform tu n'a rien a faire simplement recopier l'appel a la fonction dans le initialise en oubliant pas de metre le nom de l'userform dans l'apel de la meme maniere que l'exemple que tu a trouver
le principe est de se balader avec des variable entre s les fonction
exemple:
dans un module standard
et dans le module userform soit dans le initialyse ou dans nimporte quelle action de nimporte quel controlsCode:
1
2
3
4 sub couleur_dans usf( usf as object)'donc la usf represente un userform usf.backcolor=vbred ' le fond de l'usf en rouge end sub
tu met
donc quand ta fonction va etre appelée la variable"usf" va prendre la valeur (le nom de ton usf )Code:
1
2
3 'apel de la fonction couleur_dans usf "nom de ton userform" 'apel de la fonction suivi du nom de ton usf entre guillemet
c'est exactement la methode qui est employé dans ta source
au plaisir
sur les portable, il y a un pave numerique, et une zone, je ne sais comment l'appele, d'ou l'on peux faire deplacer le curseur, un barre sensitive comme ascenseur, et deuc bouton clic gauche et clic droit.
voila
cris
reponse a patrick
ou pense tu que je dois inserer ce code.
voici le code de mon userform
merciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Option Explicit Const LIGNE_DEBUT_LISTE As Integer = 2 Const LIGNE_FIN_LISTE As Integer = 70 'est la limite à modifier en fonction de la longueur de la liste du tableau Excel Const COLONNE_Nº As Integer = 1 Const COLONNE_PRENOM As Integer = 2 Const COLONNE_Nom As Integer = 3 Const COLONNE_datenaissance As Integer = 4 Dim iLigne As Integer Private Sub Userform_Initialize() With ThisWorkbook.Sheets(3) 'ou : With ThisWorkbook.Sheets("BD1") ListBox1.ColumnCount = 3 ListBox1.ColumnWidths = "20;60;60" For iLigne = LIGNE_DEBUT_LISTE To LIGNE_FIN_LISTE ListBox1.AddItem ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 0) = .Cells(iLigne, COLONNE_Nº).Value ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 1) = .Cells(iLigne, COLONNE_PRENOM).Value ListBox1.List(iLigne - LIGNE_DEBUT_LISTE, 2) = .Cells(iLigne, COLONNE_Nom).Value Next iLigne End With ListBox1.Selected(0) = True End Sub Private Sub ListBox1_Click() For iLigne = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(iLigne) = True Then datenaissance = ThisWorkbook.Sheets(3).Cells(iLigne + LIGNE_DEBUT_LISTE, COLONNE_datenaissance).Value 'datenaissance = ... au lieu de : TextBox_datenaissance = ... car le TextBoax se nomme : datenaissance End If Next iLigne End Sub Private Function fctAge(ByVal DN As Variant) As String If IsDate(DN) Then fctAge = CStr(DateDiff("yyyy", Me.datenaissance.Value, Date)) Else fctAge = "" End If End Function Private Sub datenaissance_Change() If IsDate(Me.datenaissance.Value) Then Me.Age.Value = fctAge(Me.datenaissance.Value) End Sub Private Sub b_fin_Click() Unload Me End Sub
cris
je pense que tu n'a pas bien observé ta source
le focus de la list ou combobox se fait avec lenomde'lobject.mousemove
tu n'a qu'a recopier le module standard dans ton fichier
et regarde comment dans ton fichier source comment l'auteur appelle la fonction
ne touche a rien de ton code actuel
au plaisir