Entête ListBox
Bonjour à tous,
Est-ce que quelqu'un pourrait m'aider à créer un entête avec une ListBox et régler les largeur de colonne?
Merci d'avance.
Cordialement,
Guillaume
Bonjour,
Seule la propriété "RowSource" permet d'avoir des entêtes de colonnes, si tu remplis par AddItem tu n'en aura pas et dans ce cas, tu peux utiliser des Labels positionnés au dessus de ta ListBox. Dans le cas où tu utilise RowSource et que tu souhaites que la première ligne soit les entêtes, il faut que ta plage débute à la seconde ligne. Dans l'exemple ci-dessous, la plage comporte deux colonnes et se trouve en A et B donc, elle sera définie de A2 à Bx. Attention tout de même, RowSource interdit la suppression d'élément de la liste, pour ça, il faut utiliser AddItem. Voir commentaires dans le code :
Private Sub UserForm_Initialize()
Dim Plage As Range
'la plage est définie de A2 à Bx (A1 et B1 étant les entêtes)
With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)): End With
With ListBox1
'2 colonnes
.ColumnCount = 2
'ici, moitié-moitié. 1 point-virgule sépare les dimensions si il y en a plusieurs colonnes il doit y avoir plusieurs ";"
.ColumnWidths = .Width / 2 & ";" & .Width / 2
'on souhaite les entêtes de colonnes
.ColumnHeads = True
'on passe l'adresse de la plage à la propriété RowSource
'attention, imposible de supprimer un élément avec RowSource
.RowSource = Plage.Address
End With
End Sub