[VBA] Récupérer numéro de ligne source d'une sélection listbox

Momo78

XLDnaute Nouveau
Bonjour à tous,

Je bosse actuellement sur l'exploitation d'une base de données de contacts sur excel grace à des UserForm en VBA.
Je rencontre un souci qui me parraissait mineur mais que je n'arrive pas à traiter.

Pour mettre en situation et expliquer mon UserForm :
1) Je sélectionne une ville depuis une ComboBox qui va chercher toutes les différentes possibilités dans la colonne A de ma BdD (feuille excel).
2) La sélection faite précédemment fait le tri dans ma BdD et renvoi les différentes valeurs de la colonne B comprenant dans la colonne A la sélection précédente, dans une listbox.
3) La sélection dans ma listbox me renvoie toutes mes données dans différentes Textbox.

Tout ça, ça fonctionne.

Ce que je voudrais faire, c'est récupérer le numéro de ligne (de ma feuille excel de base) liée à la sélection que j'ai fait dans ma listbox. La, je coince !

Attention, je ne souhaite pas connaitre le numéro de ligne de ma sélection dans la listbox (faisable avec listIndex), c'est bien le numéro de ma ligne dans ma BdD que je veux.

Merci d'avance,

Momo
 

CHALET53

XLDnaute Barbatruc
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bonjour,

Sans fichier, pas très facile

Une solution : dans ta listbox, tu rajoutes une colonne d'information dans laquelle tu renseignes le numéro de la ligne de ta base de données
Tu peux ensuite la reporter dans ta textbox

a+
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bonjour.

Une autre solution c'est de repérer dès le début tous les numéros de lignes, les collecter dans des tableaux et ne plus les lâcher. On peut alors même s'économiser la recherche suite à un choix parce qu'on à toujours quelque part la liste des lignes correspondant à chaque choix possible.
 

Spacegraphiste

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bonjour,

comme ça je dirais qu'on peut éventuellement remplacer la listbox par une listview, et on lie la ligne de la feuille aux items en l'enregistrant en tant que clé

Spacegraphiste
 

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bonjour tout le monde,

Merci pour ces 3 réponses. Je dois avouer que je suis un peu naze ce matin donc je ne comprend pas grand chose.
Je vais vous joindre mon projet, ça sera plus parlant.

Je vais même vous avouer le but ultime de ma question, ça sera plus constructif !
Mon souhait final est pouvoir supprimer la ligne entière (dont je voulais récupérer le numéro) en appuyant sur un bouton "supprimer" ou mieux encore, pouvoir la couper/coller dans un autre onglet du classeur.
 

Pièces jointes

  • Annuaire de structures.xlsm
    105.4 KB · Affichages: 158
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bonjour.
Il y aurait moins de code à mettre dans l'Userform si la ListBox1 était aussi une ComboBox, parce qu'on pourrait bénéficier d'un objet ComboBoxLiées…
 

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Je suis d'accord avec toi Dranreb (Bernard ???) mais je voyais des avantages à faire avec la listbox et les gens pour qui je le fais le souhaitaient comme ça... ;)

Celà dit, ça ne me donne pas de réponse ! lol
 

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Oui,

Excuse-moi de ma "non-réponse". J'ai vu ton commentaire et j'étais en train de chercher comment intégrer ça.
Je ne trouve pas l'outils dans la boite à outils de mon VBA...
Je suis allé voir dans les contrôles supplémentaires et je ne trouve rien qui ressemblerait. Tu trouves ça où ?

Momo
 

Spacegraphiste

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Re

Voici un bout que j avais commencé a bosser (incomplet)

L'avantage de la listview :

- colonnes de tri
- ajout de clés et d'infobulles sur les items de la liste
- un remplissage simple
- des lignes checkables

Spacegraphiste
 

Pièces jointes

  • DatMail.xlsm
    57.7 KB · Affichages: 157

Dranreb

XLDnaute Barbatruc
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Bon. J'ai refait toute la partie jusqu'à la suppression.
Le reste doit encore être adapté en conséquence.
Puis-je savoir quel avantage croyez vous avoir vu à utiliser une ListBox ?
S'il est réel je vais faire en sorte que mon module de classe ComboBoxLiées puisse aussi gérer d'autres contrôles à List.
 

Pièces jointes

  • SujCBxMomo78.xls
    206 KB · Affichages: 235

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Merci.

Ton projet ne se lance pas chez moi car "l'objet" n'est pas disponible sur ma machine.
Je crois que c'est peine perdue pour la listview, à mon avis il faut que j'installe un module complémentaire, chose que je n'ai pas le droit de faire sur mon PC... la loose !
 

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Dranreb,

Ton fichier ne fonctionne pas chez moi non plus. Grand merci cependant pour toutes ces informations dans ton fichier.
L'avantage principal que j'y vois (certes peut être mineur à tes yeux) est de pouvoir visualiser une liste exhaustive des structures disponibles en un coup d'oeil, sans avoir besoin de dérouler la combobox.

Celà dit, si je peux me permettre, ma question initiale n'est pas du tout de remettre en cause tout le travail mais simplement de savoir si il existe un moyen de récupérer le numéro de ligne sur laquelle se trouve les informations sélectionnées.
Ne nous faisons pas des noeuds au cerveau ! :p
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

Ça on vous l'a dit dès le début de diverses fraçons: Vous vous le notez quand vous l'avez sous la main, ce numéro de ligne dans une variable globale ou ou un tableau global ou une colonne supplémentaire de la ListBox. Vous pouviez bien au moins, à un moment donné, y récupérer c.Row, non ?
 
Dernière édition:

Momo78

XLDnaute Nouveau
Re : [VBA] Récupérer numéro de ligne source d'une sélection listbox

C'est justement la ligne de code pour effectuer cette opération que je ne connais pas...
Si je note :

Private Sub Listbox1_click()
For Each c In f.Range("J2:J" & f.[J65000].End(xlUp).Row) ' on explore la colonne de niveau 1

Label17.Caption = c.Row

Ça me note le nombre de lignes dans mon tableau, pas le numéro de la ligne sélectionnée.
Comment le notes-tu ?

Excuse-moi, je parrait peut-être un peu borné mais je ne comprends vraiment pas, ça n'est pas de la mauvaise volonté.
 

Discussions similaires

Réponses
21
Affichages
1 K
Réponses
6
Affichages
339
Réponses
25
Affichages
643
Réponses
8
Affichages
327
Réponses
18
Affichages
599