Bonjour alex,
une recherche sur le forum t'aurait permis je pense de trouver facilement ce que tu souhaites (les exemples font légion sur ce sujet)!
ci joint un code qui te permet de créer tes listbox sur plusieurs colonnes à adapter à ce que tu veux faire bien sur:
Private Sub UserForm_Initialize()
Dim Rng As Range, Cel As Range
Set Rng = Sheets("feuil1").Range("B7:B" & Range("B65536").End(xlUp).Row) 'c'est ma plage de données sur laquelle la listbox doit s'appuyer, à noter que j'ai délibérement choisi la colonne qui sera en première position dans la listbox
With ListBox1
.BoundColumn = 1 'définit le n° de colonne qui sera la valeur de listbox exemple si je choisis la ligne Nom prenom age et que je définis boundcolumn=1, la valeur de ma textbox sera Nom, 2 prénom 3 age
.ColumnCount = 3 ' définit le nb de colonnes dans ma listbox
.ColumnWidths = "20;100;50" 'définit la largeur de chacune des colonnes de ma listbox (respectivement 1 2 et 3)
.Clear
For Each Cel In Rng
.AddItem Cel 'ce sera la valeur de la listbox
.List(.ListCount - 1, 1) = Cel.Offset(0, 1) 'si en colonne 1 j'ai la valeur de B8 alors en colonne 2 j'aurai C8
.List(.ListCount - 1, 2) = Cel.Offset(0, 2) 'si en colonne 1 j'ai la valeur de B8 alors en colonne 3 j'aurai D8
Next Cel
End With
End Sub
a+