Userform: récupérer listbox active

Bonjour à tous,

Je n'arrive pas à récupérer le nom de la listbox dans laquel j'ai cliqué en faisant ça, ça me retourne une textbox (où le curseur est actif j'imagine):

Private Sub ListBox2_Click()

   recup = Me.ActiveControl.Name ' Me retourne "TextBox1

end sub

Sauriez vous comment faire?

Merci à vous

Bonjour,

Chez moi pas de soucis, lorsque je clic sur une valeur de la listbox je récupère bien le nom de la listbox active, cf fichier joint.

Private Sub ListBox2_Click()
   recup = Me.ActiveControl.Name 'Retourne bien ListBox2.
   MsgBox recup
End Sub
Private Sub UserForm_Initialize()
ListBox2.AddItem "Vrai"
End Sub

Qu'essaiez-vous de faire et où bloquez vous ?

Cdlt,

17classeur1.xlsm (15.67 Ko)

Salut Ergotamine,

Merci pour ta réponse.

J'essaye de récupérer le nom de la listbox, sa ListIndex pour ensuite pouvoir boucler sur toutes les autres listbox, un peu comme ça:

index= UserForm1.Controls("Listbox2").ListIndex 'Ici listobox 2 mais je veux réccupérer le nom de la listbox en variable (car on cliquera jamais sur la même)

for i = 1 to 3

    UserForm1.Controls("Listbox" & i).selected(index) = true

next

Et ma récupération de nom de listbox me renvoi toujours à ma textbox "Visa recherché" (car le curseur est dedans je pense), pourtant j'ai bien cliqué sur ma listbox2 (="heure début")

textbox

je viens de réaliser en me relisant qu'en fin de compte je n'ai pas besoin de savoir sur quelle listbox j'ai cliqué mais simplement besoin du listindex et après je boucle sur toutes les autres :) haha c'était simple en fait. cela dit je ne sais toujours pas pourquoi j'ai ce soucis de selection textbox au lieu de listbox)

Bonjour,

Oui il te suffit de récupérer la valeur de la listbox mais pas son nom. Bon codage !

Cdlt,

Ah si pardon ça coince en fait, ma 1ère intention était la bonne...

J'ai réussi mon bouclage. Mais dans les évènement des mes listbox, je ne voudrais pas à avoir à modifier l'indice de ma listbox à chaque fois:

Private Sub ListBox1_Click()

    index_selectionné_listbox = UserForm1.Controls("Listbox" & 1).ListIndex ' Le soucis ici c'est que je veux pas à avoir à remplacer l'indice de ma     listbox à chaque fois

End Sub

Private Sub ListBox2_Click()

    index_selectionné_listbox = UserForm1.Controls("Listbox" & 2).ListIndex 'Ici j'ai encore du remplacer 1 par 2 du coup

End Sub

En gros je voudrai faire quelque chose comme ça:

Private Sub ListBox2_Click()

    index_selectionné_listbox = UserForm1.Controls(Me.ActiveControl.Name).ListIndex 

End Sub

Il me faut donc bien le nom de la listbox que j'ai selectionné mais moi ça ne marche pas chez moi (ça me mets le nom de la textbox et pas la listbox sur laquelle j'ai cliqué) je ne comprends pas... Quand tu as fait ton test chez toi tu as mis aussi une Textbox (comme moi)?

Bonjour,

J'ai joint un fichier il suffirait que vous le consultiez pour voir son fonctionnement chez vous. Ou que vous me joigniez votre fichier pour que je vois comment cela fonctionne chez moi.

A convenance.

Cdlt,

Ah oui pardon je n'avais pas fait attention.

Du coup j'ai testé et ça marche, pourtant j'ai fait exactement la même chose (je ne peux pas communiquer le fichier malheureusement car il y a des données de mon entreprise dedans).

Je vais bien finir par trouver ce n'est pas grave :)

Merci beaucoup pour ton aide Ergotamine

Bonjour,

Au plus grand des hasards vous avez bien la listbox qui est chargée ? Si besoin, en dernier recours, vous pouvez toujours transférer le fichier par MP pour le respect de la confidentialité.

Ou sinon le poster, anonymiser ici.

Bon courage.

Cdlt,

C'est très gentil Ergotamine, mais je vais avoir beaucoup de mal à l'anonymiser vu la taille du fichier malheureusement...

Oui la listbox est chargée. Mais là je ne sais pas ce que j'ai fait, ça marche... Peut être est ce parce que dans VBA j'avais mis la textbox active par défaut ? bizarre comme truc...

En tout cas merci beacoup pour le temps passé à m'aider, excellent week-end Ergotamine :)

Bonjour,

D'accord, merci du retour. Il est vrai que j'ai intégré la listbox avant la textbox mais selon mes connaissances, pas d'incidence, lorsque vous cliquez sur un item de la listbox, c'est ce contrôle qui est actif. Après rien n'empêche de préciser quel controls doit être récupéré via Me.Controls("ListBox2") comme ça pas de doute.

Cdlt,

Exactement, merci Ergotamine et désolé pour la réponse très tardive.

Rechercher des sujets similaires à "userform recuperer listbox active"