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 ?
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 ?
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.
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...?
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