[VB] Pb selection valeur d'une listbox

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

  1. Contributeur
    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
    1. 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
      1. Contributeur
        Salut Lupin...
        Sans vouloir être le trouble fête!
        :-o)
        A+
        0
      2. Bonjour lermite

        Bon début de printemps :-)

        Lupin
        0
    2. 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
      1. Contributeur
        Beh Oui... idem que...
        Listboxxx.Listindex = 0 

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