Dim f, Rng
Private Sub UserForm_Initialize()
Set f = Sheets("data")
Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
Me.ListBox1.List = Rng.Value
Me.ListBox1.ColumnCount = Rng.Columns.Count
EnteteListBox
End Sub
Sub EnteteListBox()
x = Me.ListBox1.Left + 8
Y = Me.ListBox1.Top - 12
For i = 1 To Rng.Columns.Count
Set lab = Me.Controls.Add("Forms.Label.1")
lab.Caption = Rng.Offset(-1).Cells(1, i)
lab.Top = Y
lab.Left = x
x = x + Rng.Columns(i).Width * 1.1
temp = temp & Rng.Columns(i).Width * 1.1 & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox1.ColumnWidths = temp
End Sub
Sub essai()
Set f = Sheets("data")
Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
ActiveWorkbook.Names.Add Name:="Liste", RefersTo:=Rng
Sheets("base").ListBox1.ColumnHeads = True
Sheets("base").ListBox1.ListFillRange = "liste"
Sheets("base").ListBox1.ColumnCount = Rng.Columns.Count
End Sub
Sub LargeurColonnesListBox()
Set f = Sheets("data")
Set Rng = f.Range("A2:D" & f.[A65000].End(xlUp).Row)
Sheets("base").ListBox1.ColumnCount = Rng.Columns.Count
For i = 1 To Rng.Columns.Count
x = x + Rng.Columns(i).Width * 1.1
temp = temp & Rng.Columns(i).Width * 1.1 & ";"
Next i
temp = Left(temp, Len(temp) - 1)
Sheets("base").ListBox1.ColumnWidths = temp
End Sub
oui , je sais car j'ai déjà fait x fois sans Pb , sauf parfois aussi avec les entêtes !!L'utilisation des ListBox dans un formulaire est plus simple.
au #post4Dans ce cas, il faut cocher ColumnsHead à True.
???On n'utilise pas ColumnHeads à True
With Sheets("TVA")
.Lbl_ListeClients.Clear
end with