[VB] Pb selection valeur d'une listbox

Fermé
Seb_VB - Modifié par Seb_VB le 11/04/2011 à 13:39
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 11 avril 2011 à 19:30
Bonjour à tous,

Je vous explique tout d'abord rapidement le contexte:

Je suis actuellement en train de créer un outil de gestion documentaire.

J'ai un Userform avec trois listbox permettant de lister des documents en fonction de critères de recherche. les 3 listbox correspondent: au Libellé, Référence du document et le Nom du pilote du document.

A chaque clic dans la listbox "Libellé" les Listindex des 2 autres listbox s'ajustent pour n'avoir qu'une seule ligne de selectio:

Private Sub LB_libellé_Click()  

Processus.LB_pilote.ListIndex = Processus.LB_libellé.ListIndex  
Processus.LB_ref.ListIndex = Processus.LB_libellé.ListIndex  


l'utilisateur selectionne le Libellé du document qu'il souhaite ouvrir, puis en cliquant sur un bouton, un code permet de trouver le chemin d'accès a partir de la référence (donc 2ème listbox) avec ceci:

dim reference  

reference = Processus.LB_ref.Text  


Mon problème:
Tant que je ne clic pas au moins une fois quelque part sur la 2ème listbox (Réference), la valeur récupérée est nulle, quelque-soit la listindex

Comment forcer la "pré-selection" de la 2eme listbox, comment éviter d'avoir forcement à cliquer dessus?

Merci de votre aide
Sébastien

3 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 avril 2011 à 15:38
Bonjour,
Si j'ai bien compris, les autre ListBox reste avec le libellé en blanc ?
Si Oui, forcer la sélection des lisbox ajustées avec..
Listboxxx.Listindex = 0
A+
0
Bonjour à tous,

Sans vouloir être le trouble fait !

Exemple type :

 
Option Explicit 

Private Sub CommandButton1_Click() 

    Dim Reference As String 
     
    Processus.ListBox2.ListIndex = Me.ListBox3.ListIndex 
    Processus.ListBox1.ListIndex = Me.ListBox2.ListIndex 
     
    Reference = Processus.ListBox2.List(Processus.ListBox2.ListIndex) 
     
    MsgBox Reference 
     
End Sub 
' 


Private Sub UserForm_Initialize() 
    Processus.ListBox3.AddItem ("Lupin") 
    Processus.ListBox3.AddItem ("Arsene") 
    Processus.ListBox2.AddItem ("C:\Document\Texte1.txt") 
    Processus.ListBox2.AddItem ("C:\Document\Texte2.txt") 
    Processus.ListBox1.AddItem ("Poitier") 
    Processus.ListBox1.AddItem ("Charles") 
End Sub 
' 


Cdt

Lupin
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 avril 2011 à 16:23
Salut Lupin...
Sans vouloir être le trouble fête!
:-o)
A+
0
Bonjour lermite

Bon début de printemps :-)

Lupin
0
Merci de vos réponses!

Non en fait mon problème se faisait à l'exécution du code, car j'ai besoin de la valeur de la listbox2, mais en fonction du choix (cliqué) dans la listbox1. Et aucune valeur n'est récupéré, il faut avant que je clique au moins une fois sur la listbox2..

Mais je viens de trouver une solution en pré-sélectionnant la première ligne de ma listbox2 dès le résultat de la recherche et dès le listage, de cette manière:

Private Sub CB_recherche_Click()

    Call remplir_listes
    
    Processus.LB_ref.Selected(0) = True
    
End If

End Sub
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 11/04/2011 à 19:32
Beh Oui... idem que...
Listboxxx.Listindex = 0 

Mais bon, si tu préfère....
prochaine fois demande plus de conseils. AGIT
0