bonsoir ,
j alimente mon listbox avec une table de la feuille stock_pf, et pour afficher les entetes j utilise le code suivant
.RowSource = "STOCK_PF!A21:AE" & iRow ' pour afficher les entetes
Private Sub UserForm_Initialize()
Dim ar
Sheets("BL").Activate
LBLCDECLI = ThisWorkbook.Sheets("BL").Cells(16, 3)
LBLNOMCLI = ThisWorkbook.Sheets("BL").Cells(8, 3)
For i = Sheets("STOCK_PF").Range("A65536").End(xlUp).Row To 21 Step -1
Combodev = Sheets("STOCK_PF").Range("A" & i)
If Combodev.ListIndex = -1 Then Combodev.AddItem Sheets("STOCK_PF").Range("A" & i)
Next i
With Sheets("STOCK_PF").ListObjects(1)
ar = .DataBodyRange
With LISTART
.List = ar
.ColumnCount = 31
.ColumnWidths = "70;50;0;0;50;50;50;50;50;0;0;0;50;0;0;0;50;0;50;50;0;50;50;50;0;0;0;0;50;50;50" 'masque la première colonne
.ColumnHeads = True
.RowSource = "STOCK_PF!A21:AE" & iRow
End With
End With
End Sub
ensuite j utilise une combobox "combodev" pour filtrer mon listbox.
j'obtiens un debug .
pour le corriger je supprime la ligne suivante mais je perds mes entetes, jai des entetes vides.
.RowSource = "STOCK_PF!A21:AE" & iRow ' pour afficher les entetes
Private Sub Combodev_Change()
Dim i
Sheets("STOCK_PF").Select
Range("A20").Select
With LISTART
.List = Sheets("STOCK_PF").ListObjects("table20").DataBodyRange.Value
For i = .ListCount - 1 To 0 Step -1
If Not (UCase(.List(i, 0)) Like "*" & UCase(Combodev) & "*" And (.List(i, 5)) Like LBLCDECLI) Then .RemoveItem i
Next
End With
'Lbldate = Sheets("dev").Range("B" & I).Value
Sheets("cmd_client").Select
Range("A20").Select
End Sub
de l aide svp