Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Listbox: sélectionner un élément

MJ13

XLDnaute Barbatruc
Bonjour à tous

je m'y perd dans les listindex, select, selected sur les objets de type combobox, listbox...

J'ai une listbox (contrôle activeX sur ma feuille).

Comment, en VBA, sélectionner l'élément 100 par exemple?

Merci d'avance .
 

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Salut MJ13 !

Ravi de pouvoir te venir en aide.
Pour sélectionner le 100ème élément d'un listbox, en tenant compte du fait que le premier élément est numéroté "0" :
Code:
ListBox1.ListIndex = 99
 

MJ13

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

Bonjour Geo.

Merci beaucoup pour ton code, cela fonctionne partiellement, il me donne le bon élément sachant que j'ai la listbox sur la feuille.

Voici ce que j'ai testé, mais il me donne le bon élément (voir msgbox) mais ne me le sélectionne pas

Voici ce que j'ai essayé:

Code:
Private Sub ListBox1_Click()
'Stop
ListBox1.Activate
ListBox1.ListIndex = 99
MsgBox ListBox1
'ListBox1.Activate
'ActiveSheet.ListBox1.ListIndex.Item(20).SetFocus
'nombre d'éléments dans la liste
'MsgBox ListBox1.ListCount '.List ' = 500 '.Item(500).Selected 'ed(500) = 500
'ListBox1.Select
'ListBox1.Selected
End Sub
 

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Bizarre ça. Chez moi ça sélectionne bien le bon élément. Tu n'aurais pas un autre évenement qui ferait interférence ?

Tu pourrais faire passer un exemple de ton fichier ?
 

mutzik

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

bonjour MJ13, GeoTrouvePas

et si tu nous disais également pourquoi c'est faire, de sélectionner l'élément nr 100 (ou un autre)
y'a p'tet ben une autre solution
 

MJ13

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

Re, bonjour Mutzig

Voici le fichier:

L'élément 26 n'est pas sélectionné si on clique sur la listbox et en plus il inscrit plusieurs fois le msgbox
 

Pièces jointes

  • Listbox_Sur_Feuille_Selectionne_Element.xls
    38 KB · Affichages: 466

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Effectivement, c'est très bizarre ce comportement. J'ai du mal à comprendre pourquoi le msgbox s'affiche 4 fois.
Pourrais tu nous expliquer ce que tu veux faire au final ?
 

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Je viens d'essayer d'analyser un peu le comportement du Listbox et je dois dire que l'évenement Listbox_Click est bizarre.
En effet, si je crée un bouton qui se contente de sélectionner un item dans le listbox et que je clic dessus, l'évenement Listbox_Cick se déclenche. On dirait qu'il ne se déclenche pas uniquement lors d'un vrai clic sur le listbox mais plutôt lors de la sélection d'un item dans le listbox.

Ce qui explique pourquoi ton msgbox s'affiche en boucle.

Ne pourrais tu pas utiliser un autre évenement ?

Je comprend pas bien l'intérêt de sélectionner un élément fixe dans un listbox à chaque fois que l'utilisateur clic sur dessus.
 

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Je viens également de remarquer qu'une fois que l'évenement Listbox_Click a été déclenché, il est impossible de faire sélectionner une autre ligne par une procédure extérieur au listbox. De plus en plus bizarre cette histoire.
 

MJ13

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

Re Geo

Ne pourrais tu pas utiliser un autre évenement ?

Je comprend pas bien l'intérêt de sélectionner un élément fixe dans un listbox à chaque fois que l'utilisateur clic sur dessus.

Le but est de sélectionner un élement sur un numéro, sinon, on peut écrire dans une cellule le numéro que l'on souhaite voir, mais bon, je pensais que c'était plus simple
 

Fo_rum

XLDnaute Accro
Re : Listbox: sélectionner un élément

Salut

et en changeant l'évènement (pour éviter des appels récursifs) ,
Code:
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  ActiveSheet.ListBox1.ListIndex = 25
  MsgBox ListBox1
End Sub
 

GeoTrouvePas

XLDnaute Impliqué
Re : Listbox: sélectionner un élément

Le but est de sélectionner un élement sur un numéro

Je vois pas ce que tu veux dire par là. On ne peut pas parler de sélection si au final c'est toujours l'élement X qui est sélectionné. L'utilisateur choisi le numéro de l'élément qu'il veut voir sélectionner dans le listbox ?
Si c'est le cas :
- soit il le sélectionne dans le listbox et puis c'est tout
- soit il le saisi dans une cellule et on se sert de l'évenement Worksheet_SelectionChange pour sélectionner automatiquement la valeur correspondante dans le listbox
 

MJ13

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

Re , Bonjour Jean-Marcel, Forum


Merci Jean-Marcel, j'ai fait cela sur le right click:

Code:
Private Sub ListBox1_GotFocus()
ActiveSheet.ListBox1.ListIndex = 25
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.ListBox1.Activate
End Sub
Merci Forum...

Code:
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  ActiveSheet.ListBox1.ListIndex = 25
  MsgBox ListBox1
End Sub

Mais si je laisse le msgbox, cela fonctionne, mais si je le retire et que je clique sur le listbox, cela ne me sélectionne pas le 26 ème élément.

Merci à tous, mais, bon c'est quand même pas simple la programmation évènementielle
 

Pierrot93

XLDnaute Barbatruc
Re : Listbox: sélectionner un élément

Bonjour à tous

pas tout suivi ni compris, peut être ainsi, contôle l'entrée dans le contôle hors sélection de cellule... A voir...
Code:
Private Sub ListBox1_GotFocus()
ListBox1.ListIndex = 25
End Sub

bonne journée
@+

Edition : A noter, le click sur un élément de la listbox sera privilégié...
 

Discussions similaires

Réponses
25
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…