Double clic dans listbox => affiche la ligne du tableau source

  • Initiateur de la discussion Initiateur de la discussion egman
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

egman

XLDnaute Occasionnel
Bonjour à TOUT le Forum,

J'ai un petit souci pour afficher la ligne sélectionnée lors d'un double clic dans ma ListBox......

Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Lig
Lig = Me.ListBox1.ColumnCount = nbcol
ActiveSheet.Rows(Lig).Select
Unload UserForm1
End Sub

Est ce que c'est une mauvaise déclaration d'objets......

Également y' a t' il une astuce pour aligner les Labels d'en tête aux colonnes de la ListBox ?

Merci pour votre aide
 

Pièces jointes

Re : Double clic dans listbox => affiche la ligne du tableau source

Bonjour,

Peut-être comme ceci :

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Lig
Lig = Me.ListBox1.ListIndex + 2 ' = nbcol

ActiveSheet.Rows(Lig).Select
Unload UserForm1
End Sub


a+
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Bonjour,

Peut-être comme ceci :

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Lig
Lig = Me.ListBox1.ListIndex + 2 ' = nbcol

ActiveSheet.Rows(Lig).Select
Unload UserForm1
End Sub


a+

Bonjour CHALET53,
Merci pour ta réponse qui fonctionne "à moitié"......
Cela fonctionne si je double clic sur une ligne de la ListBox (sans passer par un choix de la TxtBox) mais si je fais une recherche via ma TxtBox et que je double clic sur une des lignes recherchées cela ne fonctionne plus.......çà me sélectionne n'importe quelle ligne du tableau.....
As tu une idée du pourquoi ?

D'avance MERCI
 
Re : Double clic dans listbox => affiche la ligne du tableau source

salut

Il semblerait que seuls les codes pièces soient sans doublons alors faire une recherche sur sa colonne (D ici)
VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Lig = [D:D].Find(ListBox1.List(ListBox1.ListIndex, 3)).Row
  Cells(Lig, 1).Select
  'ou Application.Goto Cells(Lig, 1), 1 pour l'avoir en première ligne
   Unload UserForm1
End Sub

Nota : je remplacerais le nom ListBox1 par un plus court (L1, Lst...) pour avoir une écriture et une lecture simplifiées.
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Bonsoir le fil,

J'avais eu, au départ, la même idée que Si... (sauf qu'en y regardant de plus près, il m'a bien fallu constater que le code EE00446AA, ainsi qu'un autre, sont présents en double, en colonne D 🙁)

Donc, Si... un identifiant unique existe dans le "fichier réel", profitons-en!
À défaut, on pourrait stocker le n° de ligne dans la ListBox (dans une colonne cachée, le cas échéant)

Quoi qu'il en soit, il va bien falloir qu'egman nous en dise un peu plus!
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Bonsoir SI et Modeste,

Merci pour vos réponses.

Ce tableau comporte 2500 lignes sur 30 col. et se compose de pièces à 2 niveaux en décomposition mais avec doublons...
Une pièce (Code pièce) peut faire partie d'un même sous ensemble (Code S/E niv.2) qui lui même appartient à différents produits finis (Code PF niv.1) (d'où les doublons)

Ma "recherche" à l'origine sert à situer et isoler un certain nombre de pièces pour leur gestion.
Peut être que j'utilise pas le bon contrôle et qu'un système de listes en cascade serait plus judicieux.

Merci pour vos conseils et astuces.
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Re,

Ce n'est qu'un avis, mais afficher 2500 lignes sur 30 colonnes dans un UserForm, au chargement de celui-ci ... ça me paraît un peu "démesuré". Mais bon, ce que j'en dis ...

Une solution à ta question, tout de même. Elle a le mérite d'être simple (même si sans doute pas un modèle d'orthodoxie).

En X2, écris
Code:
=LIGNES($1:2)
et recopie aussi bas que tu le veux.
Cette colonne (avec ton code tel qu'il est) figurera donc en dernière colonne aussi dans ta ListBox. Lors du double clic sur un item de la liste, il suffit de lire la valeur de la dernière colonne de la ListBox, avec
Code:
Lig = Me.ListBox1.List(ListBox1.ListIndex, 23)

... à tester ...

PS: il y a -au stade actuel- plus de colonnes que ce que permet la largeur de l'Usf. Quand tu utilises le scroll horizontal, tes labels ne "suivent" pas les colonnes. Tu avais remarqué?
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Bonjour Modeste,

Merci pour ton astuce en X2

Oui j'avais remarqué que les Labels dans le Usf. ne suivaient pas.....mais bon j'ai pas vraiment de solution.

Pour ce qui est de charger 2500 lignes dans le Usf. je ne sais pas trop comment faire autrement.
Le Usf. est fait à la base pour justement m'aider à trouver plus facilement mes infos du tableau.
Je n'ai peut être pas pris la bonne solution pour rechercher mes infos...?
 
Re : Double clic dans listbox => affiche la ligne du tableau source

Bonjour,

Je n'ai peut être pas pris la bonne solution pour rechercher mes infos...?
Bah, on ne connaît pas ton contexte de travail, ni l'histoire du fichier, mais un tri et des filtres dans la feuille elle-même aboutiraient -à première vue- au même résultat 😕
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour