TextBox en fonction de l'item sélectionné dans ListBox

Bonjour à tous,

Je viens vers vous car je suis complètement bloqué.. Voilà le défi :

La finalité du projet est un Userform indiquant des informations sur des affaires.

J'ai une ListBox alimentée par des colonnes d'une base de données située dans un autre classeur, jusque là tout va bien. Je souhaite avoir (sur le même userform) des textbox qui vont chercher dans cette base de données et qui se remplissent en fonction de l'item sélectionné dans ListBox.

Autrement dit, ma ListBox récupère les infos colonne A, B, C par exemple, et je voudrais que textBox récupère l'info de la même ligne sélectionné sur ListBox, mais colonne D de ma base.

J'espère être clair... Voilà mon code, et un immense merci à celui ou celle qui osera ce défi

Private Sub ComboBox2_Change()

Dim Ligne As Long
Dim Tmp As String
Application.ScreenUpdating = True
Dim Wb As Workbook
Dim Ouvert As Boolean

Tmp = SansAccent(Tmp)

Application.ScreenUpdating = False
Application.Cursor = xlDefault

Workbooks.Open Filename:=ThisWorkbook.Path & "\BDDConcertoVf.xlsm"

With Worksheets("BDD")
Worksheets("BDD").Unprotect
    .Range("A:A").Interior.ColorIndex = 2
    Tmp = Me.ComboBox2

    Me.ListBox1.Clear
    Me.ListBox3.Clear
'    Me.ListBoxDate.Clear
'    Me.ListBoxPays.Clear
'    Me.ListBoxVille.Clear

    If Tmp <> "" Then
        For Ligne = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            If .Cells(Ligne, 1) Like "*" & Tmp & "*" And .Cells(Ligne, 6) <> "0" And .Cells(Ligne, 6) <> "" Then

                Me.ListBox1.Visible = True
                Me.ListBox1.AddItem .Cells(Ligne, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = .Cells(Ligne, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(Ligne, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Cells(Ligne, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = .Cells(Ligne, 5)

            End If
         Next
    End If

End With

    Worksheets("BDD").Protect

Workbooks("BDDConcertoVf.xlsm").Close SaveChanges:=False

End Sub

Bonjour,

une solution pourrait consister à insérer dans la listbox, l'info de la colonne D sans augmenter le nombre de colonnes de la listbox

                .../...                
                Me.ListBox1.Visible = True
                Me.ListBox1.AddItem .Cells(Ligne, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = .Cells(Ligne, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(Ligne, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = .Cells(Ligne, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = .Cells(Ligne, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = .Cells(Ligne, 4) ' <= info supplémentaire Col D qui n'apparaitra pas 
                .../...

puis pour l'affichage dans les textbox:

Private Sub ListBox1_Click()
With Me.ListBox1
TextBox1 = .List(.ListIndex, 0)
TextBox2 = .List(.ListIndex, 1)
TextBox3 = .List(.ListIndex, 2)
TextBox4 = .List(.ListIndex, 3)
TextBox5 = .List(.ListIndex, 4) '<= affichage colonne D
End With
' on pourrait utiliser une boucle sur les textbox ...
End Sub

A+

C'est une superbe idée, j'essaye ça tout de suite et je reviens vers toi Merci !

MERCI

Je vais réussir à faire ce que je veux, un grand merci pour ton temps !

Rechercher des sujets similaires à "textbox fonction item selectionne listbox"