Combobox listé dans une listbox ????

dph91

XLDnaute Nouveau
Bonjour,
Malgré plusieurs recherches sur le forum, je n'ai pas trouvé la réponse à ma question.

J'ai un tableau avec en colonne 1 : un numéro (plusieurs données identiques possibles), en colonne 2 : le nom, en colonne 3 une autre valeur.
Dans un formulaire, je souhaiterai qu'à la sélection d'une combobox, les données des 3 colonnes soient affichées dans la listbox, et s'il y a plusieurs données possibles, que la listbox affiche celles sélectionnées.
Pour ceux et celles qui souhaitent me donner un petit coup de main, le fichier de travail est en pièce jointe.

J'ai effectué plusieurs essais mais en vain, aussi, un coup de pouce serait le bienvenue

D'avance merci de votre aide
 

Pièces jointes

  • Travaux IT.xls
    50 KB · Affichages: 51
  • Travaux IT.xls
    50 KB · Affichages: 61
  • Travaux IT.xls
    50 KB · Affichages: 51

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combobox listé dans une listbox ????

Bonjour Dph et bienvenu, bonjour le forum,

En Pièce jointe ton fichier modifié avec le code ci-dessous sur la combobox Recherche :
Code:
Private Sub Recherche_Change() 'au changement dans la combobox "Recherche"
Dim cel As Range 'déclare la variable cel (CELlule)
 
Me.CodeList.Clear 'vide la listbox "CodeList"
'boucle sur toutes les cellules éditées cel de la colonne A de l'onglet "Feuil1"
For Each cel In Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Cells(Application.Rows.Count, 1).End(xlUp).Row)
    'condition : si la valeur de la cellule (convertie en texte) est égale à la valeur de la combobox "Recherche"
    If CStr(cel.Value) = Me.Recherche.Value Then
        Me.CodeList.AddItem cel.Value 'ajoute la valeur de la cellule dans la première colonne de la listbox (colonne 0)
        With Me.CodeList 'prend en compte la listbox "CodeList"
            .List(.ListCount - 1, 1) = cel.Offset(0, 1).Value 'ajoute la valeur de la cellule décalée d'une colonne dans la seconde colonne
            .List(.ListCount - 1, 2) = cel.Offset(0, 2).Value 'ajoute la valeur de la cellule décalée de deux colonnes dans la troisième colonne
        End With 'fin de la prise en compte de la listbox "CodeList"
    End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub
 

Pièces jointes

  • dph_v01.xls
    43.5 KB · Affichages: 112

dph91

XLDnaute Nouveau
Re : Combobox listé dans une listbox ????

Bonjour,

Autre souci maintenant, lorsqu'une ligne de la listebox est sélectionnée, il faudrait que les champ "Textbox" s'alimentent en fonction de la ligne sélectionnée dans la feuille Excel.
Et là, actuellement, il ne sélectionne pas la bonne ligne. (voir pièce jointe)

D'avance merci de votre aide !

DPH (autodidacte en VBA)
 

Pièces jointes

  • Travaux IT.xls
    59.5 KB · Affichages: 90
  • Travaux IT.xls
    59.5 KB · Affichages: 96
  • Travaux IT.xls
    59.5 KB · Affichages: 86

dph91

XLDnaute Nouveau
Re : Combobox listé dans une listbox ????

J'ai donc une combobox (Recherche) qui filtre les données de la colonne A, et les affiche dans une listbox (CodeList)

Code:
Private Sub Recherche_Change() 'au changement dans la Combobox "Recherche"
Dim cel As Range 'déclare la variable cel (CELlule)
Me.CodeList.ColumnCount = 2
Me.CodeList.Clear 'vide la listbox "CodeList"
'Boucle sur toutes les cellules éditées cel de la colonne A de l'onglet "Sheet1"
For Each cel In Sheets("Sheet1").Range("A6:A" & Sheets("Sheet1").Cells(Application.Rows.Count, 1).End(xlUp).Row)
    'condition : si la valeur de la cellule (convertie en texte) est égale à la valeur de la combobox "Recherche"
    If CStr(cel.Value) = Me.Recherche.Value Then
        Me.CodeList.AddItem cel.Value 'ajoute la valeur de la cellule dans la première colonne de la listbox (colonne 0)
        With Me.CodeList 'prend en compte la listbox "CodeList"
            .List(.ListCount - 1, 1) = cel.Offset(0, 1).Value 'ajoute la valeur de la cellule décalée d'une colonne dans la seconde colonne
        End With 'fin de la prise en compte de la listbox "CodeList"
    End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub
Ensuite, lorsque je clique dans la listbox, il faudrait que les champs Textbox se remplisse en fonction de la ligne sélectionnée dans Excel, mais là ça ne marche pas. Ce ne sont pas les bonnes lignes qui sont prisent en compte.

Code:
Private Sub CodeList_Click()
'Remplir les champs du formulaire lors de la sélection de l'établissement choisi
    Range("Sheet1!A6").Select
    ActiveCell.Offset(CodeList.ListIndex, 0).Select
   '-- transfert Base de Données --> Formulaire
        Code = ActiveCell.Offset(0, 0).Value
        Etb = ActiveCell.Offset(0, 1).Value
        Annee = ActiveCell.Offset(0, 2).Value
        Class = ActiveCell.Offset(0, 3).Value
        Clef = ActiveCell.Offset(0, 4).Value
        PVX = ActiveCell.Offset(0, 5).Value
        SN = ActiveCell.Offset(0, 6).Value
        VG = ActiveCell.Offset(0, 7).Value
        User = ActiveCell.Offset(0, 8).Value
        Temporaire = ActiveCell.Offset(0, 9).Value
        System = ActiveCell.Offset(0, 10).Value
        Permanent = ActiveCell.Offset(0, 11).Value
End Sub

Une aide ?
Merci
Didier
 
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 989
dernier inscrit
jralonso